【发布时间】:2011-09-03 10:34:13
【问题描述】:
我有一个(剃刀)页面,其中包含 5 个不同的局部视图。每个部分视图负责数据库中的一些数据。在该母版页中,我使用一个模型对象,但对于部分视图,我使用不同的模型对象。问题是当我在局部视图中设置模型对象时,我的应用程序因以下错误而中断:
传入字典的模型项的类型为'MyProject.WebUI.Models.BigPageViewModel', but this dictionary requires a model item of type 'MyProject.WebUI.Models.StatisticsViewModel'.
代码如下: 这是包含部分视图的大页面:
@model MyProject.WebUI.Models.BigPageViewModel
@{
Layout = "../Shared/_BigPage.cshtml";
}
...
@{Html.RenderPartial("../Data/StatisticsFeed");}
...
这是控制器代码。对于这种方法,我创建了应该在大页面中呈现的局部视图。
public ActionResult StatisticsFeed()
{
StatisticsViewModel cs = new StatisticsViewModel();
cs.TotalData = (new StatisticsRepository()).GetStatisticCompleteData(1);
return View(cs);
}
这是部分视图中的代码:
@model MyProject.WebUI.Models.StatisticsViewModel
...
我使用“RenderAction”方法而不是“RenderPartial”,它返回值但返回两个结果,一个有数据,一个没有,这一定是个愚蠢的错误......
public ActionResult StatisticsFeed()
{
StatisticsViewModel cs = new StatisticsViewModel();
cs.TotalData = (new StatisticsRepository()).GetStatisticCompleteData(1);
cs.TotalCitizns = 569;
return View(cs);
}
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 partial-views