在页面上,我有两个链接
<a class="openDialog createButton" data-title="Update Type" href="/Type/Update/4150" title="Update target date"><img alt="Update Target date" src="/Content/Images/arrow_refresh_small.png"></a>
<a class="openDialog createButton" data-title="Change Type" href="/Type/Change/5427" title="Change Type"><img alt="Change Type" src="/Content/Images/arrow_refresh.png"></a>
这些绑定到以下jQuery函数...
$(document).ready(function () {
$(".openDialog").live("click", function (e) {
e.preventDefault();
var title = $(this).data('title');
$('#dialog').load(this.href, function () {
$(this).dialog({
title: title,
modal: true,
width: 600,
resizable: false
})
bindForm(this);
});
return false;
});
function bindForm(dialog) {
$('form', dialog).submit(function () {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
if (result.success) {
//redraw page
location.reload();
} else {
$('#dialog').html(result);
bindForm();
}
}
});
return false;
});
}
});
网址指向以下操作
[HttpPost]
[OutputCache(Location = OutputCacheLocation.Server, Duration = 0)]
public ActionResult Change(CorrespondenceLinkVM model)
{
try
{
if (!ModelState.IsValid)
{
throw new Exception("Model state invalid");
}
db.UpdateCorrespondenceLink(model.CorrespondenceLink);
return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
catch(Exception ex)
{
ModelState.AddModelError("error", genericFunctions.GetLowestError(ex));
return PartialView(model);
}
}
第一个(Change)将JSON对象返回到bindform
中的结果变量 [HttpPost]
[OutputCache(Location = OutputCacheLocation.Server, Duration = 0)]
public ActionResult Update(CorrespondenceTarget model)
{
try
{
if (!ModelState.IsValid)
{
throw new Exception("Model state invalid");
}
db.ChangeCorrespondenceTargetDate(model.CorrespondenceTargetID, (DateTime)model.ActualDate);
return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
ModelState.AddModelError("Error", genericFunctions.GetLowestError(ex));
}
return PartialView("Update", model);
}
而第二个返回带有下载提示的原始JSON,或者(如果我将返回类型设置为html)直接返回页面。
什么可能导致同一页面(相同引用)中的两个函数到同一个控制器(相同的使用)导致这种不同的响应?