开发者

Html.EditorFor and custom format

I got a property in my model which is a DateTime . I would like to get an empty <input /开发者_JS百科> (instead of one containing '0001-01-01 00:00:00') if the property contains DateTime.MinValue.

Is that possible?


One solution I've found working for me was to add strongly typed partial view (for System.DateTime) and put it in Views/Shared/EditorTemplates directory. File DateTime.cshtml looks pretty much like this:

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

This will however format all your DateTime fields.

More information can be found in this article.


Write an extension helper method:

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
    }
}

Then, from you view:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜