2017-01-19 2 views
1

Ich versuche, jQuery 3.1 in meiner Anwendung zu verwenden, zum Test, den ich die nächste Methode in-Controller geschrieben:JQuery nicht finden Controller MVC 4

[HttpGet] 
public string GetNotice() 
{ 
    return "Hello world!"; 
} 

und JS-Code in meinem homepage.html:

<script type="text/javascript"> 
     $("#saveNotice").button().click(function() { 
      $.get('/Controllers/NoticeController/GetNotice', function (data) { 
       console.log(data); 
      }); 

     }); 

Und ich immer Fehler:

ET http://localhost:58421/Controllers/NoticeController/GetNotice 404 (Not Found)

Vielleicht jemand zu wissen, wie ich es beheben kann?

Die Locale HomePage.html im Projektordner.

+0

nur entfernen Sie die '\ Controllers' – Alexis

Antwort

1

Vorausgesetzt, dass Sie das Standard-Routing-Schema verwenden, das verwendet wird, wenn Sie ein neues MVC-Projekt erstellen, dann sollten Sie die /controllers/ Ordner nicht hinzufügen, und Sie sollen auch die controller entfernen Suffix vom Namen des Ziel-Controllers. Versuchen Sie folgendes:

$("#saveNotice").button().click(function() { 
    $.get('/Notice/GetNotice', function (data) { 
     console.log(data); 
    }); 
}); 

Wenn es möglich ist Razor in Ihrem JS-Code zu verwenden, dann können Sie die Route machen dynamisch durch @Url.Action mit:

$("#saveNotice").button().click(function() { 
    $.get('@Url.Action("GetNotice", "Notice")', function (data) { 
     console.log(data); 
    }); 
}); 
1

Normalerweise geben Sie in Ihrer URL keine "Controller" an. Standardmäßig ignoriert Ihre Routing-Konfiguration den Pfad "Controller". MVC ignoriert auch das Suffix "Controller". Aber überprüfe deine Routing-Konfiguration, um sicherzugehen.

Try this:

<script type="text/javascript"> 
     $("#saveNotice").button().click(function() { 
      $.get('/Notice/GetNotice', function (data) { 
       console.log(data); 
      }); 

     }); 
+1

Vielen Dank für pointint, die aus . Das habe ich vermisst. –

Verwandte Themen