簡體   English   中英

Html.RenderPartial可以正常運行,但Html.RenderAction不起作用(為空),並且沒有錯誤或異常

[英]Html.RenderPartial Works but Html.RenderAction not working (is blank) and no errors or exceptions

這是我正在嘗試的

布局

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

當我在瀏覽器中查看最終渲染頁面時。

我需要通過動作方法來執行某些自定義邏輯。 這就是為什么局部渲染不足的原因。

我找不到在包括stackoverflow在內的任何地方報告的類似行為。 可能是不好的bing / googling技能。

一些幫助將不勝感激。 現在我的腦袋了三天。

我只是改變了

@Html.RenderAction("X", "Y")

@Html.Action("X", "Y")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM