这是我正在尝试的
布局
<!DOCTYPE html>
<html lang="en">
<head>
<title>WebApp Name</title>
<meta charset="utf-8" />
</head>
<body>
<div id="menuContainer">
@{Html.RenderPartial("~/Views/CustomPartials/_MainMenuPartial.cshtml");} @*Works*@
@*@{Html.RenderAction("GetMenuStructure", "Custom");}*@ @*Not working*@
</div>
<div>
@RenderBody()
</div>
</body>
</html>
控制器和动作方法
namespace Webappl.Controllers
{
[Authorize]
public class CustomController : Controller
{
[AllowAnonymous]
[ChildActionOnly]
public ActionResult GetMenuStructure()
{
return PartialView("~/Views/CustomPartials/_MainMenuPartial.cshtml");
}
}
}
_MainMenuPartial.cshtml
<ul id="ul_MainMenuStructure">
<li><a href="#">Guest Pg1</a></li>
<li><a href="#">Guest Pg2</a></li>
<li><a href="#">Guest Pg3</a></li>
</ul>
问题是
@{Html.RenderPartial("~/Views/CustomPartials/_MainMenuPartial.cshtml");}
将 _MainMenuPartial.cshtml 的内容完美呈现到布局中。
尽管
@{Html.RenderAction("GetMenuStructure", "Custom");}
什么也没做。没有错误。没有例外。只是空白。如果我在
return PartialView("~/Views/CustomPartials/_MainMenuPartial.cshtml");
断点被击中。我按 F5 并继续前进,没有任何错误/异常,但菜单结构不会在布局中呈现。我只有一片空白
<div id="menuContainer">
</div>
当我在浏览器中查看时,在最终呈现的页面中。
我需要通过 action 方法来执行某些自定义逻辑。这就是为什么渲染部分是不够的。
我在包括stackoverflow在内的任何地方都找不到类似的行为报告。这可能是糟糕的 binging/谷歌搜索技能。
一些帮助将不胜感激。3天了我的头。