Asp.Net MVC 2.0预览版提供了类似的帮助程序
Html.EditorFor(c => c.propertyname)
Run Code Online (Sandbox Code Playgroud)
如果属性名称是字符串,则上面的代码呈现texbox.
如果我想将MaxLength和Size属性传递给文本框或我自己的css类属性,该怎么办?
我是否需要在我的应用程序中为每种大小和长度组合创建一个模板?如果是这样,那么不会使默认模板可用.
我的视图模型中有这个属性:
[DataType(DataType.DateTime)]
public DateTime? StartDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
如果我想显示日期,或用日期填充文本框,我有以下内容:
<%: Model.StartDate %>
<%: Html.TextBoxFor(m => m.StartDate) %>
Run Code Online (Sandbox Code Playgroud)
每当显示日期时,它显示为:01/01/2011 12:00:00 AM
但我想只显示01/01/2011
有没有办法应用带数据注释的显示格式?我不想去每个显示日期的实例,并添加一些代码来格式化它.
我决定开始使用MVC 3,并且在尝试将我的一个Web应用程序重做为MVC3时遇到了这个问题.
我有这样设置的项目:
public class Project
{
public int ProjectID { get; set; }
[Required(ErrorMessage="A name is required")]
public string Name { get; set; }
[DisplayName("Team")]
[Required(ErrorMessage="A team is required")]
public int TeamId { get; set; }
[DisplayName("Start Date")]
[Required(ErrorMessage="A Start Date is required")]
[DisplayFormat(ApplyFormatInEditMode=true, DataFormatString="{0:d}")]
public DateTime StartDate { get; set; }
[DisplayName("End Date")]
[Required(ErrorMessage="An End Date is required")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime EndDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的报名表是这样编写的日期:
<table>
<tr>
<td>
<div class="editor-label"> …Run Code Online (Sandbox Code Playgroud) 我正在努力寻找一种简单的方法来改变我的Table字段的DateTime格式.
我有一个名为Article的模型,其中有一个名为releaseDate的字段,它是一个DateTime
我设法通过转换来实现(视觉上)
Article.releaseDate.ToString("dd/MM/yy")
Run Code Online (Sandbox Code Playgroud)
但问题是,当我尝试使用此格式从创建操作提交日期时,它会返回错误,告知格式错误.
有什么简单的方法可以将默认值("MM/dd/yy")更改为("dd/MM/yy")?
提前致谢