如何调用操作并输出其结果,就好像它是“用户控件”一样
本文关键字:用户 一样 用户控件 控件 调用 何调用 操作 结果 输出 | 更新日期: 2023-09-27 18:30:37
在我的_Layout.cshtml
文件中,我想调用这样的东西:
<div id="content">
<div id="left-wrapper" class="box">
@Html.Action("FreeThisWeek", "Products")
@RenderBody()
</div>
</div>
这是我的产品控制器文件:
[ChildActionOnly]
public ActionResult FreeThisWeek()
{
//Some code that fetches the data and builds the model.
var model = BuildFreeProducts();
return View(model);
}
如果我尝试运行此代码,我会得到一个StackOverflowException
,因为操作返回 View() 请求布局,运行返回 View() 的操作,依此类推。
可以理解,但是我如何完成正确的代码?
在哪里编写将此数据模型与我编写的 HTML 复合的视图?
尝试返回PartialView("yourview",model)
。确保您返回的视图未使用此页面作为布局。您可以使用要返回的视图顶部的@{Layout=null}
来指定该值。
您将在FreeThisWeek
操作中返回视图,并在视图中再次使用该_Layout。所以它变得递归。
转到FreeThisWeek
视图并将布局设置为 null
@{
Layout=null;
}