2
我试图将一些数据发送到母版页。我使用Razor作为View Engine和AutoMapper来映射域和视图模型。下面是我的代码:RenderPartial问题(将数据发送到母版页时)
//the partial view action method:
public ActionResult RenderCategories()
{
IEnumerable<TopLevelCategory> categories = _categoryService.GetTopLevelCategories();
var viewModel = new MasterPageViewModel
{
Categories =
Mapper.Map
<IEnumerable<TopLevelCategory>, IEnumerable<ParentCategory>>(categories)
};
return View(viewModel);
}
//the partial view file: (this is just a test for now)
@model Sharwe.MVC.ViewModels.MasterPageViewModel
@foreach (var item in Model.Categories) {
@item.Name
}
public class MasterPageViewModel
{
public IEnumerable<ParentCategory> Categories { get; set; }
}
我打电话使用@ Html.RenderPartial从里面我_Layout.cshtml文件中的局部视图(“RenderCategories”)。但我不断收到以下错误:
Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
发生了什么事?
啊我明白了。这实际上工作,但现在部分视图的模型类型与@RenderBody区域的模型类型冲突。无论如何解决这个问题? – Kassem 2011-03-17 20:18:26
您可以将正确的模型作为第二个参数传递给'RenderPartial'方法。 – 2011-03-17 20:21:24
我试图做到这一点,但我无法正确理解。我仍然得到同样的错误。请介意给我一个例子吗? – Kassem 2011-03-17 20:27:21