Html.Partial 在 if 语句下不起作用。

9 浏览
0 Comments

Html.Partial 在 if 语句下不起作用。

我在一个视图页面中有以下位置:

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

Html.Partial(\"Form\") 放置在任何 if 语句之外时,它能够正常工作并完成所有渲染。

但是,当它放置在一个 if 区块内时,它就不会有任何输出,尽管该语句为真,调试器已经读取函数并转到 Form Partial view,并且逐行地执行每一行,但最终在页面上没有任何输出。

请帮忙解决这个问题。

admin 更改状态以发布 2023年5月21日
0
0 Comments

尝试用以下内容替换:

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

替换成:

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

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

0
0 Comments

当你在代码块内部时,应该使用RenderPartial方法。

Html.RenderPartial("Form");

Html.Partial返回一个HtmlString,如果不在代码块内,它将被呈现到页面上。 在您的情况下,Razor解析您的视图并将结果返回给您的代码。 由于您没有执行任何操作来呈现它,因此您不会得到输出。

0