In meinen MVC-Apps deklariere ich normalerweise einen Basisansichtstyp, von dem alle meine Ansichten erben. Ich erhalte einen Parser-Fehler, wenn ich Inherits="MyView"
in meiner Page-Deklaration angeben, aber nicht, wenn ich Inherits="MyApp.Web.Views.MyView"
angeben.Warum kann ich in ASP.NET MVC nicht von "MyCustomView" erben, ohne den vollständigen Typnamen anzugeben?
Seltsamerweise funktioniert es funktioniert gut, wenn ich eine stark typisierte Ansicht Name: Inherits="MyView<T>
angeben (wobei T ist ein beliebiger gültiger Typ).
Warum kann ich eine stark typisierte Ansicht ohne den vollständigen Typnamen, aber keine generische Ansicht angeben?
Meine Erstansicht Klasse wird wie folgt erklärt:
namespace MyApp.Web.Views {
public class MyView : MyView<object> {
}
public class MyView<TModel> : ViewPage<TModel> where TModel : class {
}
}
UPDATE: Bitte beachte, dass ich Import MyApp.Web.Views über web.config tun . Wenn ich es nicht tun würde, würde auch der stark typisierte Ansatz (Inherits="MyView<T>"
) nicht funktionieren.
Sehr interessant ... Ich habe noch nicht den ganzen Code auf dieser Seite gelesen, aber es hört sich so an, als ob das Problem, das ich berichte, von einigen generischen/nicht-generischen Juju verursacht wird, die hinter den Kulissen gemacht werden. Wenn es mir gelingt, den Code von Justin zu verwenden, um mein Problem zu lösen, werde ich hier ein Update veröffentlichen. –