Al familiarizarme con Asp.Net MVC, estoy usando MVC 2, he notado el uso de una clase BaseViewData en el proyecto Kigg, que no estoy seguro de cómo implementar.Cómo usar un modelo de vista base en Asp.net MVC 2
Quiero que cada uno de mis ViewModels tenga ciertos valores disponibles. El uso de una interfaz me viene a la mente, pero me pregunto cuál es la mejor práctica y cómo lo hace Kigg.
Kigg
public abstract class BaseViewData
{
public string SiteTitle { get; set; }
// ...other properties
}
public class UserListViewData : BaseViewData
{
public string Title { get; set; }
// .. other stuff
}
En mi aplicación Web Forms Puedo usar un BasePage que hereda de System.Web.UI.Page.
Por lo tanto, en mi proyecto MVC, tengo esto:
public abstract class BaseViewModel
{
public int SiteId { get; set; }
}
public class UserViewModel : BaseViewModel
{
// Some arbitrary ViewModel
}
public abstract class BaseController : Controller
{
private IUserRepository _userRepository;
protected BaseController()
: this(
new UserRepository())
{
}
}
referencia a la metodología Kigg, ¿cómo me aseguro de que cada uno de mi modelo de vista que se hereda de los BaseViewModel tienen la propiedad SiteID?
¿Cuál es la mejor práctica, muestras o patrones que debería utilizar?
Vas a tener que emitir el contexto de filtro a utilizar de esta manera: '((ViewResult) filterContext.Result) .ViewData.Model' – ajbeaven
En cuanto a mi código, yo en realidad guardar el resultado en una variable local lanzando a ViewResult usando 'as', luego verifique null. – tvanfosson