不能使用Html.EditorFor() 因为需要为生成的控件 指定HTML特性
@Html.TextBoxFor(model => model.StartDate, new { Value = String.Format("{0:yyyy-MM-dd}", Model.StartDate)})
@Html.TextBoxFor(model => model.StartDate,"{0:yyyy-MM-dd}", new { @class = "m-wrap small", @readonly = "true" })
@Html.TextBoxFor(model => model.StartDate, new { Value = Model.StartDate.ToString("yyyy-MM-dd")})
上面三种写法均正确,这里需要注意两点:
1、强制更改控件value属性,注意这个Value不能小写;
2、注意Model是System.Web.Mvc.WebViewPage<TModel>的属性,区别于Lamda表达式中model。
Model的定义public TModel Model { get; }
WebViewPage<TModel>继承自WebViewPage;
3、ModelState.Clear();清空model中的值,ModelState.Remove("XXX");清空某一个值。
举例:
<span>操作时间:</span>
从 @Html.TextBoxFor(model => model.Query.BeginTime, new { Value = Model.Query.BeginTime.ToString("yyyy-MM-dd"), @class = "Wdate", onClick = "WdatePicker({dateFmt:'yyyy-MM-dd'});", style = "width:100px;" }) //直接定义控件js函数
到 @Html.TextBoxFor(model => model.Query.EndTime, new { Value = Model.Query.EndTime.ToString("yyyy-MM-dd"), @class = "Wdate", onClick = "WdatePicker({dateFmt:'yyyy-MM-dd'});", style = "width:100px;" })