Kas*_*sem 2 asp.net-mvc automapper razor asp.net-mvc-3
我试图在主页面上发送一些数据.我使用Razor作为我的View Engine,使用AutoMapper在Domain和View Models之间进行映射.以下是我的代码:
//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; }
}
Run Code Online (Sandbox Code Playgroud)
我在_Layout.cshtml文件中使用@ Html.RenderPartial("RenderCategories")调用部分视图.但我不断收到以下错误:
编译器错误消息:CS1502:'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'的最佳重载方法匹配有一些无效的参数
这是怎么回事?
该RenderPartial扩展方法直接写入到输出流,并且没有返回类型(void).所以这是调用它的正确语法:
@{Html.RenderPartial("RenderCategories");}
Run Code Online (Sandbox Code Playgroud)
或者如果您愿意,可以使用Partial扩展方法:
@Html.Partial("RenderCategories")
Run Code Online (Sandbox Code Playgroud)
将它们与WebForms视图引擎中的等效项进行对比:
<% Html.RenderPartial("RenderCategories"); %>
<%= Html.Partial("RenderCategories") %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2419 次 |
| 最近记录: |