SyntaxError:无效的正则表达式标志ajax,Javascript

Da *_*nan 17 javascript ajax jquery

这是我的控制员,

public ActionResult ReturnMethodTest(int id) 
{
    string name = "John";
    return Json( new {data=name});       
}
Run Code Online (Sandbox Code Playgroud)

我试图通过使用下面的代码从这个控制器获取数据,但我得到了 语法错误 .

你能告诉我我做错了什么吗?

$.ajax({
        url: @Url.Action("ReturnMethodTest", "HomeController"),
        data: {
            id: 5,
        },
        success: function (data) {
            console.log(data);
        }
    });
Run Code Online (Sandbox Code Playgroud)

Cer*_*rus 45

@Url.Action 只返回动作url的字符串,不带引号.

您需要将该url包装在引号中.

更换:

url: @Url.Action("ReturnMethodTest", "HomeController"),
Run Code Online (Sandbox Code Playgroud)

附:

url: '@Url.Action("ReturnMethodTest", "HomeController")',
//   ^                                                 ^
Run Code Online (Sandbox Code Playgroud)

否则,返回给客户端的文件将包含:

url: /HomeController/ReturnMethodTest,
Run Code Online (Sandbox Code Playgroud)

这不是有效的JS,也不是你想要的.替换产生以下结果:

url: '/HomeController/ReturnMethodTest',
Run Code Online (Sandbox Code Playgroud)

这是一个完全有效的JavaScript字符串.