2013-03-29 31 views
10

我已經在我的視圖頁面一個下列LOC不工作:Html.Partial下if語句

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

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

Html.Partial("Form")正常工作的任何外部if語句,並呈現一切正常,當。

但是當在if塊內時,它不會呈現任何內容,如果語句被命中,這是真的,調試器eves讀取函數並進入Form Partial view並遍歷其中的每一行,但最終不會在頁面上輸出。

請幫助

回答

23

當你是一個代碼塊中,您應該使用的RenderPartial方法。

Html.RenderPartial("Form"); 

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

+0

喔感謝..那是一些必要的信息..三江源 – Maven

+0

+1 - 讓我感動... :) –

+1

+1 - 爲了解決這個問題,我試圖解決幾個小時的問題。這麼簡單的問題! –