我想为值类型(即 int )创建一个 MVC 2 编辑器模板,有没有人使用预览 1 位完成此操作?
非常感谢
最佳答案
当您在回发时提交值时,尼克克拉克的答案会起作用吗?
在MVC2预览2中,调用Html.Textbox("abc", Model.ToString())
将呈现一个带有“.abc”附加到名称的文本框,例如
<input id="StartDate_abc" name="StartDate.abc" type="text" value="02 Feb 09" />
这将在您回发并尝试 UpdateModel() 时导致问题。
我为 DateTime 做了一个编辑器模板,以下对我有用:
/Views/Shared/EditorTemplates/DateTime.ascx:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %>
<%= Html.TextBox(String.Empty, Model.ToString("dd MMM yy")) %>
或者,为所有日期时间使用 jQuery 的 DatePicker
将 jQuery 和 jQueryUI 的引用添加到您的母版页或包含对 EditorFor 调用的 View 。
/Views/Shared/EditorTemplates/DateTime.ascx:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime>" %>
<%= Html.TextBox("", Model.ToString("dd MMM yy")) %>
<script type="text/javascript">
$("#<%= ViewData.ModelMetadata.PropertyName %>").datepicker({ dateFormat: 'dd M y' });
</script>
更新:ASP.NET MVC3 ,使用 Razor 语法:
@model System.DateTime
@Html.TextBox("", Model.ToString("dd MMM yy"))
<script type="text/javascript">
$("#@ViewData.ModelMetadata.PropertyName").datepicker({ dateFormat: 'dd M y' });
</script>
要在您的 View 中使用它,您只需要:
@Html.EditorFor(model => model.DueDate)
-马特
关于值类型的 ASP.NET MVC 2 编辑器模板,int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1223365/