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 анализирует ваше мнение и возвращает результат в ваш код. Поскольку вы ничего не делаете для его рендеринга, вы не получаете результат.
Ответ 2
Попробуйте изменить:
Html.Partial("Form"); // <- this will return string
с
Html.RenderPartial("Form"); // <- writes to response
Html.Partial vs Html.RenderPartial и Html.Action vs Html.RenderAction