如何选择是否使用MVC 3编辑器模板

时间:2011-02-15 14:47:36

标签: asp.net-mvc asp.net-mvc-3 razor

我有以下编辑器模板

@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })

这导致每个DateTime?显示为ToShortDateString()“没有小时”和类datePicker。

但现在我有一些DateTime的情况?我需要时间。

问题是,如何针对个别情况禁用编辑器模板?或者是否有解决这种情况的工作。

谢谢

2 个答案:

答案 0 :(得分:4)

在您的模型上,您可以使用UIHint属性来说明要使用的编辑器模板。

所以你可以创建一个新的编辑器并调用它来像DateTimeWithHour(或更好的名字!)然后在你的模型中它将是这样的:

[UIHint("DateTimeWithHour")]
public DateTime SomeDateTime { get; set; }

如果您没有指定UIHint,它将默认为您已创建的日期时间编辑器。

答案 1 :(得分:1)

您可以使用 UIHintAttribute 根据具体情况应用不同的模板。 您也可以在 ViewBag 中传递一些额外的数据(即格式选项)。