专家,
以下函数成功将数据发送到Controller.cs(服务器)
var ajaxResponse = $.ajax({
type: "post",
url: href,
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(postData),
success: function (msg) {
alert("Success");
}
})
但我无法通过以下方法获得更新状态
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SaveData(TabMasterViewModel postData)
{
string message = "";
try
{
TabMasterViewModel update = new TabMasterViewModel();
update = _tabmasterService.GetSingle(r => r.colID == postData.colID);
UpdateModel(update);
_tabmasterService.Update(update);
message = "Success";
}
catch (Exception e)
{
message = e.Message;
}
return Content(message);
}
我想在失败或成功时显示消息。 以下行永不执行
success: function (msg) {
alert("Success");
}
但我的服务器端代码执行没有任何错误。
请提供宝贵的建议,
谢谢,
Imdadhusen
答案 0 :(得分:4)
您应该返回ActionResult
JsonResult
例如
public JsonResult SaveData() {
return Json(new {success=true, msg="Saved ok"});
}
然后你的JS
success: function (msg) {
if(msg.success)
alert("Success");
}
答案 1 :(得分:1)
您正在返回Content
结果,就像您在JQuery中提到的dataType: 'json'
一样。我建议你从控制器返回JSON结果或从jquery调用中删除dataType。
我不确定,请试一试。
答案 2 :(得分:1)
在ajax脚本的发送行上点击Firebug
中的断点。
在成功方法回调中点击Firebug
中的断点。
在第一行动作方法中点击Visual Studio
中的断点。
按照步骤重现场景,并在发送请求之前检查Firebug中的对象,继续并点击F8
发送请求,检查firebug中的Net
标签页,看看是否有请求是否已发送。
如果已发送,请检查已发布的请求。
如果到目前为止一切正常,请继续VS上服务器端的过程并检查一切是否正确。
然后检查Firebug上的响应,看看是否有任何问题。
答案 3 :(得分:0)
首先显而易见的事情是:你确定你的网址是有效的吗? (我想是的,因为你声明数据发送成功了。)
您是否尝试过监控ajax请求以查看您收到的http状态? 无论如何,.ajax还有一个错误回调,你可以在请求失败的情况下使用它。
适当的:你从函数返回的地方去了哪里? 您必须将回复发送到输出缓冲区才能到达客户端。简单地返回将向客户端发送空响应(但在这种情况下应该无关紧要,因为.ajax成功回调应该在请求readyState 4 + status 200时触发。)