不能使用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;" })