Html.Partial не работает в выражении if

У меня есть следующий loc на одной из моих страниц просмотра:

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

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

Html.Partial("Form") отлично работает, когда его внешняя инструкция if и делает все в порядке.

Но когда Inside внутри блока if он ничего не отображает, если действуют операторы, его истинный отладчик eves читает эту функцию и переходит в Form Partial view и проходит через каждую строку, но в конце не выводится на странице.

Просьба помочь

Ответ 1

Вы должны использовать метод RenderPartial, когда находитесь внутри блока кода.

Html.RenderPartial("Form");

Html.Partial возвращает HtmlString, который будет отображаться на странице, если он не находится внутри блока кода. В вашем случае Razor анализирует ваше мнение и возвращает результат в ваш код. Поскольку вы ничего не делаете для его рендеринга, вы не получаете результат.