尝试从控制器显示成功消息?
[HttpPost]
public JsonResult SuccesMsg()
{
return Json(new { Success = true });
}
jquery的:
$("#but").click(function () {
$.ajax({
url: "/Home/SuccesMsg",
type: 'POST',
data: "",
success: function (result) {
if (resultJson['Success'] == true) {
alert('success');
}
else
{ alert('no'); }
},
error: function (err) { alert('error') }
});
});
答案 0 :(得分:3)
将 dataType:“json”添加到$ .ajax调用中或使用简写: $。getJSON 。
同时检查您的控制器是否以状态http 200(OK)处理响应返回。
对于调试,您可以添加完成:function(){alert('complete');} 以查看请求是否完成。 Firefox的优秀调试工具(附加组件)是Live http标头和Firebug。
答案 1 :(得分:2)
我认为您需要在jquery.ajax中指定如下:
dataType:'json'
$("#but").click(function () {
$.ajax({
url: "/Home/SuccesMsg",
dataType: 'json', // change code
type: 'POST',
data: "",
success: function (result) {
if (result['Success'] == true) {
alert('success');
}
else
{ alert('no'); }
},
error: function (err) { alert('error') }
});
});
答案 2 :(得分:1)
刚试过这个,它应该可行。你想要
if (result.Success) {....}
而不是
if (resultJson['Success'] == true) {..}
所以整个例子
[HttpPost]
public JsonResult SuccesMsg()
{
return Json(
new
{
Success = true
}
);
}
$.ajax({
url: '/Home/SuccesMsg',
type: 'POST',
success: function (result) {
if (result.Success) {
alert('success');
} else {
alert('no');
}
},
error: function () {
alert('error');
}
});
您还应该指定dataType但不是必需的: http://docs.jquery.com/Specifying_the_Data_Type_for_AJAX_Requests
答案 3 :(得分:0)
在MVC2中使用JsonRequestBehavior.DenyGet说过here
[HttpPost]
public JsonResult SuccesMsg()
{
return Json(new { Success = true }, JsonRequestBehavior.DenyGet);
}