2011-08-16 83 views
0

我在我的MVC 3應用程序中遇到了JSON響應問題。當JSON響應時,我的瀏覽器無法處理application/json並嘗試將其作爲文件打開。但是,我正在接收文件中的正確數據。瀏覽器嘗試打開應用程序/ json作爲文件

我已經添加到了我的Global.asax文件:

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

這是我的javascript代碼:

$('#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 }); 
    } 

我還將.json(application/json)添加到了IIE的MIME列表中。

回答

0

如果您試圖直接在Firefox中訪問帶有JSON標頭的文件(即:您將URL輸入到地址欄中),則Firefox會將其作爲文件下載。但是,當您在AJAX請求中調用JSON時,它會按照您希望的方式工作。

相關問題