我正在使用与实体框架的模型绑定,并具有一个Html.TextBoxFor(model => model.date)输入.我知道如何告诉jQuery如何实现一个datepicker而不是在这个上下文中.当用户输入此字段时,需要添加哪些日历弹出窗口?
解决方法
您将需要使用HtmlHelper重载,允许您指定Html属性.然后用jquery选择器来定位它们.
// in view <%= Html.TextBoxFor(x => x.Date,new { @class="datepicker" })%> // in js $(document).ready({ $('.datepicker').datepicker(); });
虽然我建议使用EditorFor而不是.
<%= Html.EditorFor(x => x.Date)%>
您可以创建一个EditorTemplate来处理作为DateTime的任何字段,并输出正确的字段.
创建/Views/Shared/EditorTemplates/DateTime.ascx并将其放在…中
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime>" %> <%= Html.TextBox("",Model.ToShortDateString(),new { @class="datepicker" } )%>
或者如果您需要允许DateTime为null:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %> <%= Html.TextBox("",(Model.HasValue? Model.Value.ToShortDateString():""),new { @class="datepicker"} )%>
那么你可以随时使用EditorFor,并且有一个中央ascx来编辑,如果你想修改日期时间在你的意见中处理的方式.