【发布时间】:2017-08-05 09:06:33
【问题描述】:
我正在尝试制作一些 mvc 应用程序,但遇到了问题。我想从 javascript 文件中的 mvc 控制器获取 json:
JS:
var actionUrl = '@Url.Action("GetJsonTest", "JsonTest")';
$.getJSON(actionUrl, function (response) {
if (response != null) {
var html = "<li>" + response.Id + " " + response.Name + " " + response.Author + "</li>";
$("h2").append(html);
}
});
控制器:
[HttpGet]
public ActionResult GetJsonTest() {
var books = new Book() {
Id = '1',
Name = "1+1",
Author = "Varnava",
Price = 100
};
return Json(books, JsonRequestBehavior.AllowGet);
}
它不工作。我有 404 错误。它无法从控制器中获取任何东西。我究竟做错了什么?抱歉英语不好。希望你明白我的要求。
【问题讨论】:
-
控制器的名称是什么?从你的 Url.Action,我会假设 JsonTest,但它实际上是否称为 JsonTestController.cs?
-
只要您的
GetJsonTest方法在JsonTestController.cs内,您的代码就应该可以工作 -
@sleeyuen hi,是的,其实它叫JsonTestController。
-
cshtml文件将由 MVC 模板服务器解释。其他任何东西都不会,因此您的 js 文件正在尝试向 url'@Url.Action("GetJsonTest", "JsonTest")'发出文字请求。如果您在浏览器中进行了一些调试,这将立即显而易见。 -
@csharpbd 陷阱。我懂了。谢谢!
标签: javascript c# json asp.net-mvc asp.net-mvc-4