值类型的 ASP.NET MVC 2 编辑器模板,int

标签 asp.net asp.net-mvc asp.net-mvc-2

我想为值类型(即 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/

相关文章:

asp.net-mvc - 将模型属性传递给局部 View 时如何保持正确的模型绑定(bind)行为?

asp.net-mvc - 在 ASP.Net MVC 中获取任何文件的完整 url

asp.net-mvc - 验证在部分 View 中不起作用

asp.net-mvc-2 - 基于两个属性的自定义模型验证。一个影响另一个

javascript - ASP.NET MVC如何理解相关技术,javascript、html、css

asp.net - 以编程方式控制输出缓存-根据参数值禁用或启用缓存

asp.net - 无法找到用于渲染完成的 ReportViewer 事件

html - 如何从 ASP.NET MVC View 显示存储在数据库中的 HTML?

.net - 对 asp .net 应用程序进行单元测试时如何使用 web.config

.net - 以编程方式从 iframe 回发到父页面