2011-08-16 16 views
0

私のMVC 3アプリケーションでJSON応答に問題があります。 JSONが応答すると、ブラウザはapplication/jsonを処理できず、ファイルとして開くように試みます。しかし、私はファイルに正しいデータを受け取りました。ブラウザはapplication/jsonをファイルとして開こうとします

私は私のGlobal.asaxファイルにこれを追加しました:これは私のjavascriptのコードである

ValueProviderFactories.Factories.Add(new JsonValueProviderFactory()); 

$('#register).submit(function() { 
     if ($(this).valid()) { 
      var ai = { 
      Firstname: $("#Firstname").val(), 
      Lastname: $("#Lastname").val(), 
      Email: $("#Email").val() 
      }; 

      var json = $.toJSON(ai); 
      $.ajax({ 
       url: '/Person/Create', 
       type: 'POST', 
       dataType: 'json', 
       data: json, 
       contentType: 'application/json; charset=utf-8', 
       success: function (data) { 
        alert("Success");  
       }, 
       error: function (data) { 
        alert("Error"); 
       } 
      }) 
     } 
    }); 

そして、これが私のActionResultメソッドです:

[HttpPost] 
    public ActionResult Create(Person person) 
    { 
     if (ModelState.IsValid) 
     { 
      db.Personer.Add(person); 
      db.SaveChanges(); 
     } 

     return Json(new { Success = person.ID > 0, Firstname = person.Firstname, Lastname = person.Lastname }); 
    } 

また、IIEのMIMEリストに.json(application/json)を追加しました。

答えて

0

Firefoxで直接JSONヘッダーを含むファイルにアクセスしようとしている場合(つまり、アドレスバーにURLを入力している場合)、Firefoxはファイルとしてファイルをダウンロードします。しかし、JSONをAJAXリクエストで呼び出すと、それはあなたが望むように動作します。

関連する問題