0

ASP.NET MVC Ajax フォームに問題があります。次のように、テーブルにいくつかの Ajax フォームを生成します。

<% 
foreach (var item in Model)
       {
           var statefulItem = item as StatefulEffectiveItem; %>
    <tr>
        <td>
            <% using (Ajax.BeginForm("ShowAddActivity", "EffectiveItems", new { id = item.Id }, new AjaxOptions() { UpdateTargetId = "details", OnSuccess = "dialogIt" }))
               { %>
            <input type="submit" name="activity" value="Add Activity" />
            <% } %>
        </td>
    </tr>
    <% } %>

ここまでは順調ですね。これらのフォームの 1 つを投稿すると、div に部分ビューがレンダリングされ、この新しい部分ビューには新しい Ajax.BeginForm が含まれます (これは元のフォームにネストされていません)。この 2 番目の Ajax.BeginForm は、表で生成したものとまったく同じですが、投稿すると「Ajax 投稿」ではなく、新しいページに移動する通常の投稿になります。この 2 つの Ajax フォームの違いの原因がわかりません。この「動的に生成された」Ajax フォームが通常の html フォームのように動作するのはなぜですか?

ところで、Javascript を使用してさまざまな方法でこれを実行できることはわかっていますが、MVC ヘルパーと Ajax ライブラリを使用するだけでこれを実行できるかどうか、答えが「はい」の場合はどこが間違っているかを理解したいと思います。

どうもありがとうございました、

ハチ

4

2 に答える 2

2

MS AJAX で実行できるかどうかはわかりませんが、何が問題なのかはわかります。最初の ajax でパーシャルを更新すると、この更新されたパーシャルには、新しいフォームに ajax を登録するための JavaScript が含まれます。この JavaScript は、実行するように指示するものが何もないため、実行されません。最初の ajax リクエストの成功コールバックで、2 番目のフォームに ajax を登録する JavaScript 関数を呼び出す必要があります。

于 2010-02-02T11:12:40.340 に答える