W moich aplikacjach MVC zwykle deklaruję typ widoku podstawowego, z którego dziedziczą wszystkie moje widoki. Wystąpił błąd analizatora składni, określając Inherits="MyView"
w mojej deklaracji strony, ale nie, jeśli określę Inherits="MyApp.Web.Views.MyView"
.W ASP.NET MVC, dlaczego nie mogę dziedziczyć z "MyCustomView" bez określenia pełnej nazwy typu?
O dziwo, to działa dobrze, jeśli określę mocno wpisaną nazwę widoku: Inherits="MyView<T>
(gdzie T jest dowolnym prawidłowym typem).
Dlaczego można określić widok mocno napisany bez pełnej nazwy typu, ale nie ogólny widok?
Mój pogląd bazowa klasa jest zadeklarowana następująco:
namespace MyApp.Web.Views {
public class MyView : MyView<object> {
}
public class MyView<TModel> : ViewPage<TModel> where TModel : class {
}
}
UPDATE: Uwaga że zrobić MyApp.Web.Views importu poprzez web.config. Gdybym tego nie zrobił, to również mocno wpisane podejście (Inherits="MyView<T>"
) również nie działałoby.
Bardzo interesujące ... Nie przeczytałem jeszcze całego kodu na tej stronie, ale wygląda na to, że problem, który zgłosiłem, jest spowodowany przez niektóre ogólne/nietypowe juju, które są robione za kulisami. Jeśli uda mi się wykorzystać kod Justina do rozwiązania mojego problemu, opublikuję tutaj aktualizację. –