2009-05-22 11 views
1

.NET MVCパターンで新しく、AJAX.BeginFormを使用してアクションを呼び出そうとしましたコントローラのヘルパークラスreturn JSON();ASP.NET MVC戻り値JSON()はファイルの保存ダイアログを表示しません

私の見解では、リプレイスJSONを消費するScripの魔女を追加しました。

function ResultSet(request) { 

    var json = content.get_response().get_object(); 
    var result = eval(json); 

    if (result.Successfull) { 
     alert("Success!"); 
    } 
    else { 
     alert("else"); 
     } 
    } 

しかし、返された場合は、ブラウザにJSONファイルを保存する保存ダイアログが表示されます。

なぜですか?

答えて

2

私は同様の問題を持っていた、あなたは、Microsoft Ajaxライブラリへの参照を追加しました確認してみてください:

<script src="/Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script> 
<script src="/Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script> 

でもあります。あなたのResultSet()メソッドは "request"という名前の変数をパラメータとして取ります。このように "content"と呼ばれるべきですか?

<script type="text/javascript"> 
    function ResultSet(content) { 
     var json = content.get_response().get_object(); 

     var result = eval(json); 
     if (result.Successfull) { 
      alert("Success!"); 
     } 
     else { 
      alert("else"); 
     } 
    }  
</script> 
0

次のようにアプリケーション/ JSONに対する応答のコンテンツタイプを設定してみてください:

Response.ContentType = "application/json"; 
+0

これは冗長です。戻るJson()はすでにそれを行います。 –

0

あなたはjQueryを参照するのを忘れてしまいました。これをあなたのhtmlの頭の中に入れてください:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
関連する問題