MVC 中Html.TextBoxFor 如何实现 data-options属性与值格式化

Html.TextBoxFor(model => model.AreaName, new {@class="header", @data_options = "multiline:true", @data_date_format="yyyy/mm/dd"})

关键在于把 @data-options 写成 @data_options

@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;" })
           到 @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;" })

了解更多