我正在用 Razor 编写一个 ASP.Net MVC 应用程序。
假设我有 HomeController 和一些视图。
1. View1
2. View2
3. View3
所有这些视图都使用公共_MyLayout
文件,它应该如下所示:
单击链接时,将按方法呈现视图RenderBody()
。每个视图都是强类型的:它需要自己的模型。
一切都很好,直到我决定将特殊模型添加到 _MyLayout 视图。
但现在我得到错误
The model item passed into the dictionary is of type 'TestUp.Models.UserModels.PendingTestsModel', but this dictionary requires a model item of type 'TestUp.Models.UserModels.UserNavigationModel'.
这是控制器代码
public ActionResult View1()
{
ModelForView1 model = new ModelForView1();
return View(model);
}
public ActionResult View2()
{
ModelForView2 model = new ModelForView2();
return View(model);
}
public ActionResult View3()
{
ModelForView3 model = new ModelForView3();
return View(model);
}
简而言之,如果布局视图不需要模型,则调用视图的特定方法,创建模型,传递给视图,一切正常。但是现在布局也需要模型,所以它崩溃了。
问题是:我如何优雅地解决这个问题?
所需的工作流程是:
- 请求 View1
- 调用此视图的控制器中的方法,创建模型实例,传递给视图
- 调用一些布局方法,创建布局模型,传递给布局。
有没有可能让事情像这样工作?
谢谢。