Html.EditorFor和自定义格式

时间:2011-01-07 14:30:17

标签: c# asp.net-mvc razor

我的模型中有一个属性DateTime。如果属性包含{{},我想获得一个空的<input />(而不是包含 '0001-01-01 00:00:00' 的空文件) 1}}。

这可能吗?

2 个答案:

答案 0 :(得分:7)

我发现为我工作的一个解决方案是添加强类型部分视图(对于System.DateTime)并将其放在Views/Shared/EditorTemplates目录中。文件DateTime.cshtml看起来非常像这样:

@model System.DateTime
@Html.TextBox("", Model == DateTime.MinValue ? "" : Model.ToShortDateString())

然而,这将格式化所有DateTime字段。

更多信息可在this文章中找到。

答案 1 :(得分:2)

编写extension helper方法:

public static class DateTimeHelper
{
    public static string MyEditor(this HtmlHelper helper, DateTime date)
    {
        if (date.Equals(DateTime.MinValue))
        {
            // return your an empty input: helper.TextBox ...
        }
        // return helper.EditorFor your datetime
    }
}

然后,从你看来:

<%= Html.MyEditor(Model.YourDateTimeField) %>