Ajax BeginForm发布到返回json的操作,IE尝试下载它

时间:2010-05-12 13:39:31

标签: asp.net-mvc json internet-explorer-8

以下是我用来设置表单的代码:

        <% using (Ajax.BeginForm("SaveCroppedPhoto", new { Id = Model.memberId.GetValueOrDefault() }, new AjaxOptions
                                                                {
                                                                    OnBegin = "ProfileOnBegin",
                                                                    OnComplete = "ProfileOnComplete",
                                                                    OnFailure = "ProfileOnFailure",
                                                                    OnSuccess = "ProfileOnSuccess"
                                                                }, new { id = "cropPhotoForm" })) {%>

我的操作结果返回一个json结果如下:

 return Json(new { success });

在IE8中,当操作返回时,它会尝试下载结果。返回的内容类型是application / json。任何人都知道如何阻止IE尝试下载结果?

其他一些信息: 我只是在提琴手中注意到,当我保存时,会对动作发出两个请求。试着想出来。我猜这就是问题的原因。

2 个答案:

答案 0 :(得分:1)

我试图调用$(frm).submit(),因此它导致ajax帖子加上常规帖子。这就是为什么它试图下载json。我的错。

我通过在表单中​​添加一个隐藏的提交按钮并在javascript中触发click事件来解决这个问题。

答案 1 :(得分:1)

您应该通过以下方式打开不显眼的ajax:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>