我有一个主页面,它依赖于来自我页面的特定模型。所以基本上每个ViewResult的结束代码都会像这样结束
public ActionResult Details(long store_id)
{
var store = getStore();
var model = new ClientModel<StoreModel>(store)
{
UserNotifications = new UserNotificationModel(this.CurrentUser)
};
return View(model);
}
我的每个控制器都来自一个BaseController,所以我想把这个冗余的代码放在那里,但我不确定最好的方法。
我的通用ClientModel的结构就是这个......
public class ClientModel<T> : ClientModel {}
public class ClientModel {}
澄清 StoreModel是通用的,许多其他操作使用不同的视图模型。我只是想根据它在受到影响时的外观来展示。
答案 0 :(得分:1)
protected ViewResult ClientModelView<T>(T model)
{
var clientModel = new ClientModel<T>(model)
{
UserNotifications = new UserNotificationModel(CurrentUser)
};
return this.View(clientModel);
}
答案 1 :(得分:0)
查看我的类似question。
基本上,您创建了一个基本控制器:
public class BaseController : Controller
{
public Model GetModel() {}
}
然后所有控制器都从基地继承:
public class NewController : BaseController
{
public ActionResult Details(long store_id)
{
var model = GetModel();
return View(model);
}
}