0

私の_Layout.cshtmlファイルでは、次のようなものを呼び出したいと思います:

    <div id="content">
        <div id="left-wrapper" class="box">
            @Html.Action("FreeThisWeek", "Products")
            @RenderBody()
        </div>
    </div>

そして、これは私の ProductsController ファイルです:

[ChildActionOnly]
public ActionResult FreeThisWeek()
{
    //Some code that fetches the data and builds the model.
    var model = BuildFreeProducts();
    return View(model);
}

このコードを実行しようとするとStackOverflowException、アクションがレイアウトを要求する View() を返すため、View() を返すアクションを実行するなどの結果が得られます。

理解できますが、正しいコードでこれを達成するにはどうすればよいですか?

このデータ モデルと私が作成した HTML を組み合わせたビューはどこに作成すればよいですか?

4

2 に答える 2

2

戻ってみてくださいPartialView("yourview",model)。返すビューがこのページをレイアウトとして使用していないことを確認してください。@{Layout=null}返すビューの上部で使用することにより、それを指定できます。

于 2012-04-09T19:43:32.333 に答える
1

アクション内でビューを返し、ビュー内FreeThisWeekで_Layoutを再度使用しています。したがって、再帰的になります。

ビューに移動し、FreeThisWeekレイアウトをnullに設定します

@{
   Layout=null;
}
于 2012-04-09T19:50:58.997 に答える