13

ビューページの1つに次のlocがあります。

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

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

if ステートメントのHtml.Partial("Form") 外側にある場合は正常に機能し、すべてが正常にレンダリングされます。

しかし、ifブロック内で何もレンダリングされない場合、ステートメントがヒットした場合、デバッガー eve は関数を読み取り、その中のForm Partial viewすべての行に移動しますが、最後にページに出力がありません。

親切に助けて

4

2 に答える 2

31

コード ブロック内にいる場合は、RenderPartial メソッドを使用する必要があります。

Html.RenderPartial("Form");

Html.Partial は、コード ブロック内にない場合にページにレンダリングされる HtmlString を返します。あなたの場合、Razor はビューを解析し、結果をコードに返します。レンダリングするために何もしないので、出力は得られません。

于 2013-03-29T08:09:31.927 に答える
5

置き換えてみてください:

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

と:

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

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

于 2013-03-29T08:10:42.843 に答える