0

在不使用“UIHint”的情况下,如何为某些类型的数据创建 .cshtml。

例子

这些已经在工作了!

[DataType(DataType.Url)]
public string Link { get; set; }

将会被使用

Url.cshtml

[DataType(DataType.MultilineText)]
public string Descrition { get; set; }

将会被使用

MultilineText.cshtml

这些,我怀疑如何

public IEnumerable<SelectListItem> TypesList { get; set; }

将会被使用

???????????.cshtml

public DateTime? DateUpdated { get; set; }

将会被使用

???????????.cshtml

public int? Order { get; set; }

将会被使用

???????????.cshtml

问题

简而言之,不想放入我的 ViewModel 属性,就像“Url”和“Multiline”一样

.cshtml将用于的文件名应该是什么int?IEnumerable<xx>IEnumerable<string>

Remembering that you can not create files with "<", ">" or "?"
4

1 回答 1

4

按照惯例(如果您不指定任何模板名称):

  • public IEnumerable<SelectListItem> TypesList { get; set; }将使用SelectListItem.cshtml(不是因为你有一个IEnumerable<T>编辑器模板将为集合的每个元素呈现并被调用T.cshtml
  • public DateTime? DateUpdated { get; set; }将使用DateTime.cshtml
  • public int? Order { get; set; }将使用Int32.cshtml ...

您还可以在视图中指定模板名称:

@Html.EditorFor(x => x.TypesList, "MyTemplate.cshtml")

假设TypesList是 an IEnumerable<T>thenMyTemplate.cshtml将被强类型为 toIEnumerable<T>而不是 to T

于 2012-03-15T15:14:36.497 回答