none
[ASP.NET MVC3]Ajax.BeginFormなどのAjaxHelpersが動かない RRS feed

  • 質問

  • 環境:[Windows Vista SP1, VisualStudio 2010 Pro]

    ソースは以下のものを参考にしてください。
    http://social.msdn.microsoft.com/Forums/ja-JP/aspnetja/thread/a8b79135-4304-43db-b63d-66bf46df4115

    これをMVC3に移行したところ、以下のようなソースで
    using (Ajax.BeginForm("GetData", new { page = 1 },
                   new AjaxOptions { UpdateTargetId = "results", OnSuccess = "onSuccess" }))

    アクションは実行されるんですが、ブラウザに結果が描画されなくなりました。

    以下を参照したところ、
    http://davidhayden.com/blog/dave/archive/2010/12/30/UnobtrusiveJavaScriptASPNETMVC3AjaxHelpers.aspx

    <appSettings>
        <add key="ClientValidationEnabled" value="true"/>
        <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
      </appSettings>

    上記のようになっていることと、なんかjquery.unobtrusive-ajax.min.jsというのを読み込むことが前提のようです。

    前者は最初からtrueになっていたので、後者のjsを追加してみました。

    その結果、ブラウザに結果が描画されるようにりました。

    しかし、OnScuccessイベントが起動しません。

    まだ何か欠けている部分があるのでしょうか?



    2011年4月1日 9:05

回答

  • う~ん。いろいろぐちゃぐちゃいじってたら、起動するようになりました。

    1. OnBeginイベントもキャッチしてみる。

    >いけた。けどOnSuccessは起動しない

    2. OnCompleteイベントもキャッチしてみる。

    >いけた。しかもなぜかOnSuccessも起動した。またOnSuccessよりOnCompleteが先に起動する。おかしい・・・。

    3. OnSuccessだけに戻す

    >いけた。もうこれでいいや。

    てな流れでした。

    ブラウザにキャッシュされてておかしかったのでしょうか。いやでも毎回クリアしてたはず・・・。

    結局解決方法は謎ですが、解決しました。

     

    • 回答としてマーク NZ-000 2011年4月1日 9:26
    2011年4月1日 9:25