我在其中一个视图页面中有以下内容:
@* Html.Partial("Form")*@
@{
var role = Convert.ToInt32(Session["Role"]);
if (role == 2)
{
Html.Partial("Form");
}
}
当Html.Partial("Form")
在if if语句之外时,if
可以正常工作,并使一切正常。
但是当在Form Partial view
块内部它什么都没有呈现时,如果语句被命中,那是真的,调试器eves读取函数并转到{{1}}并遍历其中的每一行但最后页面上没有输出。
请帮助
答案 0 :(得分:27)
当你在代码块中时,你应该使用RenderPartial方法。
Html.RenderPartial("Form");
Html.Partial返回一个HtmlString,如果它不在代码块中,它将被呈现给页面。在您的情况下,Razor会解析您的视图并将结果返回给您的代码。由于您没有做任何事情来渲染它,因此无法获得输出。
答案 1 :(得分:5)
尝试更换:
Html.Partial("Form"); // <- this will return string
使用:
Html.RenderPartial("Form"); // <- writes to response
Html.Partial vs Html.RenderPartial & Html.Action vs Html.RenderAction