Asp.net-Mvc-2

Asp.net Mvc 顯示字元串的模板,但是現在每個簡單的類型都想用它!

  • October 14, 2010

我創建了一個顯示模板,當傳遞一個字元串時會呈現一個禁用的文本框

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<String>" %>
<%: Html.TextBoxFor(model => model, new { disabled = "disabled" })%>

效果很好。但是,出於某種原因,MVC 也想嘗試通過它填充 DateTimes 和 Ints,這會引發異常

傳入字典的模型項的類型為“System.Int32”,但此字典需要“System.String”類型的模型項。

有任何想法嗎?

您不需要將模板強類型為字元串。

你可以嘗試這樣的事情:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%= Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue,
            , new { disabled = "disabled" }) %>

在你看來,你這樣稱呼它

Html.DisplayModelFor(model => mode.name);

有關更多資訊,請參閱Brad Wilson 在他的關於 ASP.NET MVC 中的模板系列文章中的字元串預設內置編輯器模板範例。

您應該考慮瀏覽完整的系列。我無法表達這個系列對我有多大幫助。

引用自:https://stackoverflow.com/questions/3928134