浏览器尝试将application / json打开为文件

时间:2011-08-16 09:34:32

标签: javascript asp.net-mvc json asp.net-mvc-3

我的MVC 3应用程序中的JSON响应存在问题。当JSON响应时,我的浏览器无法处理application / 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列表中。

1 个答案:

答案 0 :(得分:0)

如果您尝试直接在Firefox中访问带有JSON标头的文件(意思是:您将URL输入到地址栏中),Firefox会将其作为文件下载。但是,当您在AJAX请求中调用JSON时,它将以您希望的方式工作。