我在这里错过了什么吗?我只希望一个警报框在控制器操作中为我提供字符串值。 我在开发工具中不断收到内部服务器错误消息
public JsonResult Button_Click()
{
string cam = "Hello";
return Json(cam, JsonRequestBehavior.AllowGet);
}
$("#hello").click(function () {
$.ajax({
url: '/Mycontroller/Button_Click/',
type: "GET",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data);
},
failure: function () {
alert("FAIL");
},
error: function () {
alert("ERROR");
}
});
});
});
我应该只得到一个带有“你好”的警告框。
答案 0 :(得分:1)
我正在尝试,看来这对我有用:
return new JsonResult(){ Data=cam, JsonRequestBehavior=JsonRequestBehavior.AllowGet };
代替:
return Json(cam, JsonRequestBehavior.AllowGet);
至于一种解释,我还没有人。奇怪的是,使用Post代替Get in Ajax可以很好地完成旧方法。我希望这个对你有用。
答案 1 :(得分:1)
仅写“ My”而不是写“ Mycontroller”。不需要“控制器”后缀。
这应该工作
Javascript:
$("#hello").click(function () {
$.ajax({
url: '/My/Button_Click/',
type: "GET",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data);
},
failure: function () {
alert("FAIL");
},
error: function () {
alert("ERROR");
}
});
});
操作:
public JsonResult Button_Click()
{
string cam = "Hello";
return Json(cam, JsonRequestBehavior.AllowGet);
}
HTML:
<span id="hello">Click Me</span>
答案 2 :(得分:0)
您的服务器端代码正确,但是在javascript中您添加了额外的花括号,
如果我尝试过并且可以正常工作,请在删除此脚本后删除多余的)};
脚本
$("#hello").click(function () {
$.ajax({
url: '/Mycontroller/Button_Click/',
type: "GET",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data);
},
failure: function () {
alert("FAIL");
},
error: function () {
alert("ERROR");
}
});
});
我希望它能对您有所帮助。
答案 3 :(得分:0)
public JsonResult Button_Click()
{
string cam = "Hello";
return Json(new { result = true,data=cam }, JsonRequestBehavior.AllowGet);
}
$("#hello").click(function () {
$.ajax({
url: '/Mycontroller/Button_Click/',
type: "GET",
dataType: "json",
contentType:'text/xml; charset=utf-8',
success: function (result) {
if(result.result==true)
{
alert(result.data);
}
},
failure: function () {
alert("FAIL");
},
error: function () {
alert("ERROR");
}
});
});
});
you return direct data so your data not display
my changes help you