我使用$ .ajax()从Javascript(在cshtml文件中)调用ASP.NET MVC 4控件方法,如下所示
$.ajax({
url: '@Url.Action("MyAction", "MyController")',
type: 'GET',
data: { 'id': "123"},
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (data) {
}
});
控制器操作方法是
public JsonResult MyAction(string id)
{
// Do stuff
return new JsonResult();
}
被称为ok但导致GET 500(内部服务器错误)。
我并不关心返回的数据,我只想调用控制器方法来更新模型。
任何人都可以让我知道为什么我会获得500或另一种方法来做到这一点很棒。
答案 0 :(得分:4)
出于安全原因,您无法在ajax请求中使用GET方法(请参阅JSON Hijacking)。
你必须这样做:
return Json(data, JsonRequestBehavior.AllowGet)
或更好的关闭,将方法更改为发布
type: 'POST',