我创建了一个显示模板,当传递一个字符串时会呈现一个禁用的文本框
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<String>" %>
<%: Html.TextBoxFor(model => model, new { disabled = "disabled" })%>
Run Code Online (Sandbox Code Playgroud)
哪个效果很好.但是,出于某种原因,MVC想要通过它来尝试填充DateTimes和Ints,这就是抛出异常
传递到字典中的模型项的类型为"System.Int32",但此字典需要"System.String"类型的模型项.
有任何想法吗?
Man*_*ous 10
您不需要强烈地将模板键入String.
你可以尝试这样的事情:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%= Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue,
, new { disabled = "disabled" }) %>
Run Code Online (Sandbox Code Playgroud)
在你看来,你这样称呼它
Html.DisplayModelFor(model => mode.name);
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅他在ASP.NET MVC中的模板系列文章中的Brad Wilson 文章中的字符串的默认内置编辑器模板示例.
你应该考虑完成整个系列.我无法表达这个系列对我有多大帮助.