En mis aplicaciones MVC normalmente declaro un tipo de vista base del que heredan todas mis vistas. Aparece un error de analizador cuando especifico Inherits="MyView"
en la declaración de mi página, pero no si especifico Inherits="MyApp.Web.Views.MyView"
.En ASP.NET MVC, ¿por qué no puedo heredar de "MyCustomView" sin especificar el nombre de tipo completo?
Curiosamente, funciona bien si especifico un nombre de vista fuertemente tipado: Inherits="MyView<T>
(donde T es cualquier tipo válido).
¿Por qué puedo especificar una vista fuertemente tipada sin el nombre de tipo completo, pero no una vista genérica?
Mi clase de vista de base se declara así:
namespace MyApp.Web.Views {
public class MyView : MyView<object> {
}
public class MyView<TModel> : ViewPage<TModel> where TModel : class {
}
}
ACTUALIZACIÓN: en cuenta que yo hago MyApp.Web.Views de importación a través de web.config. Si no lo hice, entonces el enfoque fuertemente tipado (Inherits="MyView<T>"
) tampoco funcionaría.
Muy interesante ... Todavía no he leído todo el código de esa página, pero parece que el problema que he informado es causado por algunos de los juju genéricos/no genéricos que se realizan detrás de las escenas. Si logro utilizar el código de Justin para resolver mi problema, publicaré una actualización aquí. –