2

我正在 MVC 应用程序中开发布局页面。布局页面有-页眉-内容-页脚

标头有 ogo、欢迎信息、用户信息和其他几个链接。

我的问题是,我应该将标题设计为部分视图还是使用 Rendoraction 渲染它。部分视图工作正常。但由于这些数据不依赖于页面的其余部分,我想调用一个控制器操作,它返回一个带有自己模型的标题视图。

但 HTML Rendor 操作不起作用。

_Layout.cshtml

<body>
    <div class="main_page">
        <div id = "header">
            *@Html.Partial("HeaderPartial", @Model)*@
            @Html.Action("Header")
        </div>        
        <div id="body">
            @RenderBody()
        </div>
        <div id="footer">
        </div>
</body>

家庭控制器

public ActionResult Header()
{
  Var VModel = //Create Model;
  return View(VModel)  
} 

header.cshtml

@model VModel
<div>
</div>

执行处理程序的子请求时出错

System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper

4

3 回答 3

5

你的header.cshtml样子对我来说很罕见,但如果你想让你的标题视图作为部分视图

第一的:

Remove the layout using

@{
    Layout = null;
 }

其次要在您的布局上呈现此视图,请使用

@Html.Action("Header","Home", new { foo= @someElement}) <-- this element send values to your action
于 2012-05-22T20:41:42.823 回答
3

由于Html.Action调用在布局页面中,您必须指定控制器

@Html.Action("Header", "SomeController")
于 2012-05-22T20:39:55.057 回答
3

如果你想RenderAction在 _Layout.cshtml 中这样调用它

@{ Html.RenderAction("Header", "Home"); }
于 2012-05-22T20:40:45.183 回答