如何处理Ajax响应与MVC4
问题描述:
即时通讯使用jQuery的移动以及添加到乐趣。 我想做的只是做一个帖子,并保持在同一页面,但即时通讯被重定向到登录页面,弹出作品,但我最终在登录页面。如何处理Ajax响应与MVC4
function UpdateClient(data) {
var baseUrl = '@Url.Action("MobileAppointmentEdit")';
$.ajax({
url: baseUrl,
type: 'POST',
data: {Id:'@Model.Id' },
success: function(response) {
$("#popupSaved").popup();
return false;
}
});
}
[HttpPost]
public ActionResult MobileAppointmentEdit(MobileAppointment appointment)
{
if (appointment !=null)
{
//Do stuff
}
return null;
}
答
你似乎从成功的AJAX回调中返回false,但这没有任何意义。它看起来像你从某种形式的提交按钮调用这个UpdateClient
函数。确保您从此函数返回false以取消默认操作。例如:
<input type="submit" value="Save" onclick="return UpdateClient();" />
,然后返回从函数本身错误:
function UpdateClient(data) {
var baseUrl = '@Url.Action("MobileAppointmentEdit")';
$.ajax({
url: baseUrl,
type: 'POST',
data: { id: '@Model.Id' },
success: function(response) {
$("#popupSaved").popup();
}
});
return false; // <!-- here, that's the important bit
}
答
喜欢的东西
function UpdateClient(data) {
var baseUrl = '@Url.Action("MobileAppointmentEdit")';
$.ajax({
url: baseUrl,
type: 'POST',
dataType:'json'
data: {Id:'@Model.Id' },
success: function(response) {
if(response.Success)
{
$("#popupSaved").popup();
}
else{
$("#popupNotSaved").popup();}
}
});
}
,并在服务器端,您应该返回JsonResult
像
[HttpPost]
public ActionResult MobileAppointmentEdit(MobileAppointment appointment)
{
if (appointment !=null)
{
//Do stuff
return Json(new {Success = true});
}
return Json(new{Success = false});
}
值得一提的是,在出现故障的情况下,你可以在你的JSON对象发送其他领域,如错误消息。
+0
仍然遇到同样的问题 – 2013-03-25 12:48:44
你能告诉我们你怎么骂'UpdateClient'功能。我有一种感觉是从按钮或锚点调用,你试图通过'success'回调中的'return false'语句来阻止defautl动作(顺便说一句,“success”在不同的范围内被调用,所以'return假'不会导致'UpdateClient'返回false - 这个函数在调用'success'回调之前就会退出。 – tpeczek 2013-03-25 12:22:50
– 2013-03-25 12:42:52