のバインディング火花を追加します。以下に示すように私たちは、Html.BeginFormのための1つを含むいくつかのバインディングを持つbindings.xmlにファイルを設定している:は、私たちがスパークビューエンジンを使用している、私たちのMVC3プロジェクトでAjax.BeginForm
<element name="Form">
<start># using (Html.BeginForm("@action", "@controller", new RouteValueDictionary{{"@route-*"}}, [email protected], new Dictionary[[string,object]]{{"@*"}})) {</start>
<end># }</end>
</element>
次のように私たちは、私たちの見解でこれを使用します。
<Form controller="Account" action="Create" method="Post">
....
</Form>
我々が今持っていますajaxフォームを使用したいので、理想的には、新しいバインディングを追加して使用することができます。
問題は、Ajax.BeginFormがAjaxOptionsオブジェクトを受け入れることです。このオブジェクトは、UpdateTargetId、成功/失敗のメソッドおよびコールバックのようなものを設定するために使用されます。
カミソリでは、私は通常のようなもの呼び出します:ユースケースによっては
@using(Ajax.BeginForm("Create", "Account", new AjaxOptions { UpdateTargetId = "mydiv" }))
を、我々はAjaxOptionsオブジェクト上の異なるフィールドを設定し、他の人を無視することになるでしょう。
は、私たちは私たちに、この機能を可能にするAJAXフォームの結合火花を追加することができます方法はありますか?例えば:私たちはAJAXのフォームに何かを宣言することができるように:
<AjaxForm controller="Account" action="Create" ajax-UpdateTargetId="mydiv"></AjaxForm>
または別のインスタンスで
<AjaxForm controller="Account" action="Create" ajax-OnComplete="handleSuccess"></AjaxForm>
ありがとう、それはうまくいくようです。私が持っていた問題は、二重中括弧を使用していたということでした。たとえば、新しいAjaxOptions {{"@ ajax- *"}} – Fatal
ええ、二重を必要とする辞書を初期化しているのですが、これは単なる標準オブジェクト初期化子です – lomaxx