2

@using(Ajax.BeginForm) コード ブロック内で @Html.RenderPartial を使用することは可能ですか? @Html.RenderPartial を使用すると機能しません。@using(Ajax.BeginForm) ブロック内に直接カミソリ コード全体を配置すると機能します。

それが可能かどうか、誰か提案してもらえますか?

4

1 に答える 1

5

Html.RenderPartialが の直後にある場合は、@using(Ajax.BeginForm(...))Html.RenderPartial への呼び出しの前に、@かみそりが理解するように、まだ同じコード ブロックにいる必要はありません。

したがって、これは正常に機能します。

@using (Ajax.BeginForm(...)) {            
    Html.RenderPartial("_PartialView", Model);
    <p>after partial view inside the ajax form</p>
}

`@using(Ajax.BeginForm(...)) とレンダリング パーシャルの間に何らかの html がある場合、razor は RenderPartial を呼び出す前にコード ブロックを終了し、これを行う必要があります。

@using (Ajax.BeginForm(new AjaxOptions())) {            
    <div>
        <h3>partial view inside the ajax form</h3>
        @{ Html.RenderPartial("_PartialView", Model); }
    </div>
}

またHtml.RenderPartial、 は void を返し、内部で Write を呼び出すメソッドであるため、それを使用するための構文は を使用する場合とは少し異なりますHtml.Partial。そのため、"@{" で囲む必要があります (まだコード ブロックにない場合)。セミコロンで終了します。この質問を参照してください

于 2013-10-09T12:32:10.473 に答える