【发布时间】:2020-09-24 19:19:16
【问题描述】:
我正在尝试将数据从 View 传递到 Controller Action 方法。使用 Ajax 将数据传递给控制器,但控制器没有接收到数据,并且始终为 null 导致 404 错误。 有人可以对此进行审查并指出需要解决的问题吗?
View 中的 Ajax 调用 -
function openErrorDetails(errors) {
$.ajax({
type: 'POST',
url: "/Home/ErrorDetails",
dataType: 'json',
data: JSON.stringify({ errors }),
success: function (data) {
var win = window.open();
win.document.write(data);
}
});
}
使用锚标记 OnClick 事件调用 Ajax 函数以打开包含错误详细信息的新窗口 -
var exception = "onClick='openErrorDetails(" + JSON.stringify(data) + ")'> 查看详情";
控制器 -
[HttpPost]
public ActionResult ErrorDetails(string errors)
{
if (errors != null)
{
dynamic errorMessages = JsonConvert.DeserializeObject(errors);
return View("ErrorDetails", errorMessages);
}
else
{
return new HttpNotFoundResult();
}
}
【问题讨论】:
-
你能显示整个控制器文件吗?
-
我想知道控制器在文件顶部有什么。即路由信息
-
没有路由信息。它确实执行了控制器方法,但错误为空。
-
将您的相对网址更改为绝对网址,看看是否有帮助。参考:stackoverflow.com/questions/4765740/…
-
你试过不用stringify吗?
标签: javascript jquery ajax asp.net-mvc