EditorTemplates> bool - bool.cshtml,DateTime? - DateTime?.cshtml(失败)

时间:2012-03-15 14:40:07

标签: asp.net-mvc-4 mvc-editor-templates

不使用" 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属性,就像那样,就像&#34; Url&#34;和&#34; Multiline&#34;

用于.cshtmlint?IEnumerable<xx>

的文件名IEnumerable<string>应该是什么?
Remembering that you can not create files with "<", ">" or "?"

1 个答案:

答案 0 :(得分:4)

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

  • public IEnumerable<SelectListItem> TypesList { get; set; }将使用SelectListItem.cshtml(不是因为您有IEnumerable<T>,因此将为集合的每个元素呈现编辑器模板,并将其称为T.cshtml)< / LI>
  • public DateTime? DateUpdated { get; set; }将使用DateTime.cshtml
  • public int? Order { get; set; }将使用Int32.cshtml ...

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

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

假设TypesListIEnumerable<T>,则MyTemplate.cshtml将强烈输入IEnumerable<T>,而不是T