7
我最近遇到了ASP.NET MVC顯示模板的問題。之所以這樣說,是我的模型:字符串的ASP.NET MVC顯示模板用於整數
public class Model
{
public int ID { get; set; }
public string Name { get; set; }
}
這是控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new Model());
}
}
,這是我的看法:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<DisplayTemplateWoes.Models.Model>" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Index</title>
</head>
<body>
<div>
<%: Html.DisplayForModel() %>
</div>
</body>
</html>
如果我需要某種原因的所有字符串顯示模板我將創建一個像這樣的String.ascx局部視圖:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<%: Model %> (<%: Model.Length %>)
這裏是問題 - 在運行時拋出以下異常: 「傳入字典的模型項目類型爲'System.Int32',但此字典需要類型爲'System.String'的模型項目」
似乎String.ascx用於Model類的整數和字符串屬性。我期望它只用於字符串屬性 - 畢竟它被命名爲String.ascx而不是Object.ascx或Int32.ascx。
這是設計嗎?如果是 - 是否在某處記錄?如果沒有 - 它可以被認爲是一個錯誤?