如何在Html.TextBoxFor中使用ShortDate字符串格式

4

在使用MVC2时,我需要使用Entity Framework来处理一系列日期文本框。我想以短日期格式显示模型中的数据,但是为了让更新代码能够正常工作,我必须使用Html.TextBoxFor(尝试使用HTML.Textbox时,数据无法保存到模型中)。

<%: Html.TextBoxFor(model => model.Item.Date, String.Format("{0:d}", Model.Item.Date))%>

我尝试过修改字符串格式表达式,并在映射到Entity Framework模型类的部分类中添加元数据,但是在表单呈现时仍然会出现以下情况:

01/01/2011 00:00:00 

相比于
01/01/2011
1个回答

16
<%: Html.EditorFor(model => model.Item.Date) %>

针对您的视图模型:

[DataType(DataType.Time)]  
[DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime Date { get; set; }

更新:

完整示例:

模型:

public class MyModel
{
    public Item Item { get; set; }
}

public class Item
{
    [DataType(DataType.Time)]
    [DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
    public DateTime Date { get; set; }
}

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyModel
        {
            Item = new Item { Date = DateTime.Now }
        });
    }
}

视图:

<%: Html.EditorFor(model => model.Item.Date) %>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接