我可以有一個基類的觀點在MVC項目是這樣的:ASP.NET MVC的通用基礎視圖類
public class BaseViewPage : System.Web.Mvc.ViewPage
{
public string Something { get; set; }
}
然後在ASPX我可以這樣做:
<%@ Page Something="foo" Language="C#" Inherits="MyNamespace.BaseViewPage" %>
這工作正常;問題是,當我嘗試做相同的通用版本:
public class BaseViewPage<TModel> :
System.Web.Mvc.ViewPage<TModel> where TModel : class
{
public string Something { get; set; }
}
當我嘗試使用這個從ASPX,像這樣:
<%@ Page Something="foo" Language="C#"
Inherits="MyNamespace.BaseViewPage<SomeClass>" %>
我得到的錯誤信息:
解析屬性'something'時出錯:類型'System.Web.Mvc.ViewPage'沒有名爲'something'的公共屬性。
注意它如何嘗試使用System.Web.Mvc.ViewPage而不是我的BaseViewPage類。爲了使它更有趣,如果我從Page指令中刪除「Something」屬性,並將一些代碼放在BaseViewPage的通用版本中(例如OnInit),則該類實際上被稱爲/ used/instantiated。
那麼,我做錯了什麼或者這是一個限制/錯誤?謝謝。
[Generic Inherited ViewPage <> and new Property](http://stackoverflow.com/questions/1480373/generic-inherited-viewpage-and-new-property) – 2012-08-18 02:16:32