在我的MVC應用程序中,我通常會聲明一個基本視圖類型,即所有視圖都繼承自該視圖。當我在頁面聲明中指定Inherits="MyView"
時出現解析器錯誤,但如果指定Inherits="MyApp.Web.Views.MyView"
,則不會出現解析器錯誤。在ASP.NET MVC中,爲什麼我不能從「MyCustomView」繼承而不指定完整的類型名稱?
奇怪的是,它工作正常,如果我指定一個強類型的視圖名稱:Inherits="MyView<T>
(其中T是任何有效的類型)。
爲什麼我可以指定一個沒有完整類型名稱但不是通用視圖的強類型視圖?
我的基本觀點類被聲明如下:
namespace MyApp.Web.Views {
public class MyView : MyView<object> {
}
public class MyView<TModel> : ViewPage<TModel> where TModel : class {
}
}
UPDATE:請注意,我通過web.config中做進口MyApp.Web.Views。如果我沒有,那麼強類型的方法(Inherits="MyView<T>"
)也不起作用。
非常有趣......我還沒有閱讀那個頁面上的所有代碼,但它聽起來像我報告的問題是由一些在後臺完成的通用/非通用juju引起的。如果我成功使用Justin的代碼來解決我的問題,我會在此發佈更新。 – 2010-05-05 13:02:17