简体   繁体   中英

Html.EditorFor and custom format

I got a property in my model which is a DateTime . I would like to get an empty <input /> (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) %>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM