it-swarm.com.de

SyntaxError: ungültiges Flag für reguläre Ausdrücke ajax, Javascript

Das ist mein Controller,

public ActionResult ReturnMethodTest(int id) 
{
    string name = "John";
    return Json( new {data=name});       
}

Ich versuche mit diesem Code Daten von diesem Controller zu erhalten, aber ich bekomme es Syntax error

Können Sie mir bitte sagen, was ich falsch mache?

$.ajax({
        url: @Url.Action("ReturnMethodTest", "HomeController"),
        data: {
            id: 5,
        },
        success: function (data) {
            console.log(data);
        }
    });
13
Da Artagnan

@Url.Action gibt nur die Zeichenfolge der Aktions-URL ohne Anführungszeichen zurück.

Sie müssen diese URL in Anführungszeichen einschließen.

Ersetzen:

url: @Url.Action("ReturnMethodTest", "HomeController"),

Mit:

url: '@Url.Action("ReturnMethodTest", "HomeController")',
//   ^                                                 ^

Andernfalls enthält die an den Client zurückgegebene Datei Folgendes:

url: /HomeController/ReturnMethodTest,

Welches ist keine gültige JS, noch was Sie wollen. Die Ersetzung ergibt folgendes Ergebnis:

url: '/HomeController/ReturnMethodTest',

Welches ist eine vollkommen gültige JavaScript-Zeichenfolge.

39
Cerbrus

Entfernen Sie das Suffix Controller, während Sie in url angeben.

Versuchen Sie es so:

url: '@Url.Action("ReturnMethodTest", "Home")'
0
Aftab Ansari
<a href='@Url.Action("action","controller", new { paramname =  paramvalue })'>xx</a>
0
user10884045

Ein Javascript regulärer Ausdruck wörtlich sieht wie folgt aus - ein zwischen Schrägstrichen eingeschlossenes Muster:

var re = /pattern/flags;

Wenn Sie eine Variable, die mit einem Schrägstrich beginnt, interpolieren, sie jedoch nicht in Anführungszeichen setzen, wird sie als regulärer Ausdruck und nicht als String interpretiert. Ein anderes Mal erscheint dies mit der JSP-Ausdruckssprache, in der Sie die erste und nicht die zweite schreiben sollten:

var spinner = "<img src='${contextPath}/images/ajax-loader-small.gif'>"
var spinner = "<img src='" + ${contextPath} + "/images/ajax-loader-small.gif'>"
0
Noumenon