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

标签 .net asp.net-mvc razor

我的一个 View 页面中有以下位置:

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

  @{
    var role = Convert.ToInt32(Session["Role"]);
    if (role == 2)
    {
        Html.Partial("Form");
    }
}
Html.Partial("Form")当它在任何 if 语句之外时工作正常并呈现一切正常。

但是当在 if 内部时 block 它什么也不渲染,如果语句被命中,这是真的,调试器 eves 读取函数并转到 Form Partial view并遍历其中的每一行,但最后页面上没有输出。

请帮助

最佳答案

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

Html.RenderPartial("Form");

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

关于.net - Html.Partial 在 if 语句下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699522/

相关文章:

asp.net-mvc - 如何使用 asp.net MVC razor 将两个模型组合成一个模型并将其传递给 View

c# - 从扩展方法中获取调用方方法

asp.net - 如何在 Visual Studio 中写入输出

c# - 在 List<object> 中查找对象的更有效方法

c# - ASP.NET MVC 3 显示模板问题

asp.net-mvc - JSONIgnore 类上的数据注释

c# - MVC 4 - 脚本/CSS 渲染问题

c# - Large Object Heap Compaction,什么时候好?

asp.net - 将 Css 类添加到 ASP.NET MVC 的 ActionLink

asp.net-mvc - 如何使用 Html.ActionLink 通过 MVC3 指定准确的 URL