【问题标题】:Html.Partial not working under if statementHtml.Partial 在 if 语句下不起作用
【发布时间】:2013-03-19 22:26:10
【问题描述】:

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

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

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

Html.Partial("Form") 在任何 if 语句之外都可以正常工作并呈现一切正常。

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

请帮忙

【问题讨论】:

    标签: .net asp.net-mvc razor


    【解决方案1】:

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

    Html.RenderPartial("Form");
    

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

    【讨论】:

    • +1 - 已经尝试了几个小时来弄清楚为什么我的没有渲染。这么简单的问题!
    【解决方案2】:

    尝试替换:

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

    与:

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

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

    【讨论】:

      猜你喜欢
      • 2012-07-16
      • 2021-04-23
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2017-10-22
      相关资源
      最近更新 更多