2012-05-22 68 views
2

我正在開發MVC應用程序中的佈局頁面。佈局頁面有 - 頁眉 - 內容 - 頁腳ASP.NET MVC3 - Html.RenderAction不工作

頭有胡,歡迎信息,用戶信息,其他幾個環節。

我的問題是,我應該設計標題爲部分視圖或使用Rendoraction呈現它。 PartialView工作正常。但是由於這些數據並不依賴於頁面的其餘部分,我想調用一個控制器動作,它返回一個帶有自己模型的標題視圖。

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

的HomeController

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

header.cshtml

@model VModel 
<div> 
</div> 

錯誤execu對於處理器婷子請求

System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper

回答

5

header.cshtml外觀上罕見的給我,但如果你想使你的頭視圖的局部視圖

第一:

Remove the layout using 

@{ 
    Layout = null; 
} 

二要呈現在你的佈局使用這種觀點

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

我刪除了佈局,就像你在header.cshtml上所說的那樣,並使用'@ Html.Action(「Header」,「Home」)'。我仍然得到相同的錯誤 - 執行處理程序'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'的子請求錯誤。 – user1411143

+0

你有更多的代碼?因爲我沒有看到其他錯誤 – Jorge

+0

代碼與上面相同。 ** IN Layout.cshtml **我正在調用操作方法 @Html。Action(「Header」,「Home」) ** HomeController中的ActionMethod被調用** public ActionResult Header() Varodel = // Create Model;與處理程序「System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper」下面的錯誤 錯誤執行子請求返回的視圖(VMModel) – user1411143

3

由於Html.Action通話是在佈局頁面,您必須指定控制器

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

如果您想用RenderAction在_Layout.cshtml中這樣稱呼它:

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

我也試過,但我仍然得到相同的錯誤 錯誤 - 錯誤 - 處理程序'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'的子請求執行錯誤。 – user1411143

相關問題