这是我的控制器,
public ActionResult ReturnMethodTest(int id)
{
string name = "John";
return Json( new {data=name});
}
我试图通过使用下面的代码从此控制器获取数据,但我得到。
你能告诉我我做错了什么吗?
$.ajax({
url: @Url.Action("ReturnMethodTest", "HomeController"),
data: {
id: 5,
},
success: function (data) {
console.log(data);
}
});
答案 0 :(得分:41)
@Url.Action
仅返回操作网址的字符串,不带引号。
您需要将该网址包装在引号中。
替换:
url: @Url.Action("ReturnMethodTest", "HomeController"),
使用:
url: '@Url.Action("ReturnMethodTest", "HomeController")',
// ^ ^
否则,返回给客户端的文件将包含:
url: /HomeController/ReturnMethodTest,
哪个JS不是有效的,也不是你想要的。替换产生以下结果:
url: '/HomeController/ReturnMethodTest',
这是一个完全有效的JavaScript字符串。
答案 1 :(得分:0)
请在onLowMemeroy
中指定时删除Controller
后缀。
以这种方式尝试:
url
答案 2 :(得分:0)
Javascript 正则表达式文字看起来像这样 - 斜杠之间包含的模式:
var re = /pattern/flags;
如果插入一个以斜杠开头但不在其周围加上引号的变量,它将被解释为正则表达式,而不是字符串。另一次出现的是JSP表达式语言,你应该写第一个,而不是第二个:
var spinner = "<img src='${contextPath}/images/ajax-loader-small.gif'>"
var spinner = "<img src='" + ${contextPath} + "/images/ajax-loader-small.gif'>"