【问题标题】:ASP.NET MVC3 - Html.RenderAction not workingASP.NET MVC3 - Html.RenderAction 不工作
【发布时间】:2012-05-22 20:34:16
【问题描述】:

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

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

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

但 HTML 渲染操作不起作用。

_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>

HomeController

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

header.cshtml

@model VModel
<div>
</div>

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

System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

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

    第一:

    Remove the layout using
    
    @{
        Layout = null;
     }
    

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

    @Html.Action("Header","Home", new { foo= @someElement}) <-- this element send values to your action
    

    【讨论】:

    • 我删除了你在 header.cshtml 上所说的布局并使用了'@Html.Action("Header", "Home")'。我仍然遇到同样的错误 - 执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper”的子请求时出错。
    • 代码同上。 IN Layout.cshtml 我正在调用动作方法 @Html.Action("Header", "Home") HomeController 中的 ActionMethod 被调用 public ActionResult Header() { Var VModel = //创建模型; return View(VModel) } 但在返回 view(VMModel) 后中断,错误为处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper”执行子请求时出错
    • 将调用从 Action 更改为 RenderAction 并尝试捕获整个控制器
    • 添加到该错误消息,这是我当前收到错误 CS0201 的新错误消息:只有赋值、调用、递增、递减和新对象表达式可以用作语句"}
    【解决方案2】:

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

    @Html.Action("Header", "SomeController")
    

    【讨论】:

      【解决方案3】:

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

      @{ Html.RenderAction("Header", "Home"); }
      

      【讨论】:

      • 我也试过了,但我仍然收到相同的错误错误 - 执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper”的子请求时出错。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      相关资源
      最近更新 更多