2012-02-10 21 views
0

MVC2の使用ビューでAjaxヘルパーを使用してフォームを作成しました。フォームは、モデルオブジェクトにバインドするコントローラにポストします。コントローラによってPartialViewResultが返され、HTMLがdivに更新されます。ここまでは順調ですね。MVC2 - AJAXと非AJAXを使用したフォームの送信

これで、同じフォームを送信し、結果を生成されたファイルに戻して、ダウンロードする必要があります。明らかに私はファイルの内容が私のdivに入ることを望んでいません。

ビットにハックすることなくこの状況を処理するためのエレガントな方法はありますか?私はMVC/AJAXをかなり新しくしていますが、それはまだ私のための混乱のポイントです。

答えて

1

OKをやろうとしている何をするのを助けることができるので、私はどこでも任意のシンプルなソリューションを見つけることができなかったので、私は私自身を思い付きました。ダウンロードしたいときにAjaxイベントハンドラをフォームから削除し、Ajaxが必要なときに戻します。私は、これを行うためのよりエレガントな方法があると思っています。これは、「巧妙なトリック」のように感じます。私はより良い提案には開放されていますが、これまでのところ私の好みの方法です。私のページの

リファレンスToggleAjax.js:

var ToggleAjax = function ($, form) { 
    var onclick = form.onclick, 
     onsubmit = form.onsubmit; 

    $('input[class*="ajax-enabled"]').click(function() { 
     form.onclick = onclick; 
     form.onsubmit = onsubmit; 
    }); 
    $('input[class*="ajax-disabled"]').click(function() { 
     form.onclick = function() { }; 
     form.onsubmit = function() { }; 
    }); 
}; 

は、その後、私は私のページToggleAjaxを呼び出して、フォームに渡します

$(function() { 
    ToggleAjax($, $('form')[0]); 
}); 

そしてもちろん、私はクラスajax-enabledまたはajax-disabledを追加入力コントロール。

関連する問題