以下是我用来设置表单的代码:
<% 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尝试下载结果?
其他一些信息: 我只是在提琴手中注意到,当我保存时,会对动作发出两个请求。试着想出来。我猜这就是问题的原因。
答案 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>