2017-01-19 85 views
1

我想在我的應用程序使用jQuery 3.1測試我寫在控制器的下一個方法:jQuery的不MVC找到控制器4

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

和JS代碼在我HomePage.html:

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

     }); 

我總是有錯誤:

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

也許有人知道我怎麼能解決這個問題?

項目文件夾中的HomePage.html語言環境。

+0

只是刪除了'\ Controllers' – Alexis

回答

1

假設你正在使用,當你創建一個新的MVC項目則使用的默認路由模式,那麼你不應該添加/controllers/文件夾,你也應該刪除controller後綴來自目標控制器的名稱。試試這個:

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

如果可以在你的JS代碼中使用剃鬚刀,那麼你可以通過使用@Url.Action進行動態路線:

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

通常,您不會在您的網址中指定「控制器」。默認情況下,您的路由配置將忽略「控制器」路徑。 MVC也會忽略「Controller」後綴。但請仔細檢查您的路由配置。

試試這個:

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

     }); 
+1

感謝pointint了這一點。我錯過了。 –