【发布时间】:2019-08-20 21:20:27
【问题描述】:
我在这里遗漏了什么吗?我只想要一个警报框来给我控制器操作中的字符串值。 我不断在开发工具中收到内部服务器错误消息
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");
}
});
});
});
我应该得到一个带有“Hello”的警告框。
【问题讨论】:
-
旁注:
contentType: "application/json; charset=utf-8"可以删除。 GET 请求没有任何正文内容,因此它也不能(有意义地)具有内容类型。 -
无论如何,如果您收到内部服务器错误,则意味着您的 ASP.NET 应用程序在某个地方崩溃了。您需要使用调试器单步执行它,和/或检查服务器上的事件日志以查看它是否记录了底层异常,这将为您提供更多信息。
-
尝试在方法名和ajax url调用中不带下划线。
-
因此,ajax 调用中的内部服务器错误也可能意味着您访问了错误的端点。尝试使用
'@Url.Action("Button_Click", "MyController")' -
另外,我看不到在
Button_Click方法上装饰的[HttpGet]属性。
标签: c# jquery asp.net ajax asp.net-mvc