2

MVC アプリケーションでレイアウト ページを開発しています。レイアウト ページには - ヘッダー - コンテンツ - フッターがあります

ヘッダーには、ogo、ウェルカム メッセージ、ユーザー情報、その他のいくつかのリンクがあります。

私の質問は、ヘッダーを部分ビューとして設計するか、Rendoraction を使用してレンダリングする必要があるかということです。PartialView は正常に動作しています。しかし、このデータはページの残りの部分に依存しないため、独自のモデルでヘッダー ビューを返すコントローラー アクションを呼び出したいと考えています。

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>

ホームコントローラー

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;
 }

2番目に、レイアウトでこのビューをレンダリングするには

@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 に答える