Dot-Net

Html.Partial 在 if 語句下不起作用

  • November 12, 2018

我的一個視圖頁面中有以下位置:

@* Html.Partial("Form")*@

 @{
   var role = Convert.ToInt32(Session["Role"]);
   if (role == 2)
   {
       Html.Partial("Form");
   }
}

Html.Partial("Form") 它在任何 if 語句之外並呈現一切正常時,它工作正常。

但是當在一個if塊內它什麼都不呈現時,如果語句被命中,這是真的,調試器 eves 讀取函式並轉到Form Partial view並遍歷其中的每一行,但最後頁面上沒有輸出。

請幫助

當您在程式碼塊內時,您應該使用 RenderPartial 方法。

Html.RenderPartial("Form");

Html.Partial 返回一個 HtmlString,如果它不在程式碼塊內,它將被呈現到頁面。在您的情況下,Razor 會解析您的視圖並將結果返回給您的程式碼。由於您沒有做任何事情來渲染它,因此您不會得到輸出。

嘗試更換:

Html.Partial("Form"); // <- this will return string

和:

Html.RenderPartial("Form"); // <- writes to response

Html.Partial vs Html.RenderPartial & Html.Action vs Html.RenderAction

引用自:https://stackoverflow.com/questions/15699522