我想为 DateTime 创建一个编辑器模板?具有日、月、年 3 个文本框的字段。目前我的 EditorTemplates/Date.cshtml 看起来像这样:
@Html.TextBox(string.Empty, Model.HasValue ? Model.Value.Day.ToString() : "",
new { @class = "day-box", title = "day", min = "1", max = "31", type = "number" })
@Html.TextBox(string.Empty, Model.HasValue ? Model.Value.Month.ToString() : "",
new { @class = "month-box", title = "month", min = "1", max = "12", type = "number" })
@Html.TextBox(string.Empty, Model.HasValue ? Model.Value.Year.ToString() : "",
new { @class = "year-box", title = "year", min = "1900", max = "2020", type = "number" })
明显的问题是(原样) id 和 name 属性都设置为相同的值。我需要在这些值上附加一些东西,并且永远不要让它回到我的模型中。
我希望将 _Day 附加到 id,并将 .Day 附加到 Day 输入的名称,同样的月份和年份可以解决问题。但我看不到这样做的简单方法。
我打算使用隐藏输入作为实际值,然后每次在我的三个(d/m/y)文本框之一中的值发生更改时,使用 javascript 更新隐藏字段的值。
那么,当我传入 string.Empty 时,有没有办法获取 MVC 将使用的名称和 ID?使用 ViewData.TemplateInfo.HtmlPrefix 似乎没有提供全部价值。
有没有更好的方法来做我想做的事?我无法想象我是第一个解决这个问题的人。
我知道那里有第 3 方日期选择器。为了这个问题,我对它们不感兴趣。
谢谢,~S