2016-07-28 21 views
1

我的文件夾結構如下所示。這兩個文件夾都包含在Area文件夾中。如何在JQuery中使用AJAX在另一個MVC控制器中調用函數

Folder structure

我想打電話從EmailController在函數內部ITRequests/Scripts/Edit.js並沒有找到它。 的.js代碼看起來喜歡這個

$(document).on('change', '#StatusId', function (event) { 
    event.preventDefault(); 
    debugger; 
    if(($('#OldStatus').val()) != ($('#StatusId').val())) //Aka if the user switched the status on submit 
    { 
     var status_description = [$('#OldStatus').val(), $('#StatusId').val()]; 
     $.ajax({ 
      url: "/Email/Email/statusChangeEmail", 
      type: 'POST', 
      contentType: "application/json; charset=utf-8", 
      data: JSON.stringify({ 'request': $('#RequestId').val(), 'status_descriptions': status_description }), 
      done: function (data) { 
       debugger; 
       alert("working"); 
      } 
     }) 
    } 
}) 

RequestId是被拾起正確,同樣是status_description場走的是正確的價值觀和(嘗試),它們傳遞給函數在頁面上隱藏的價值。 功能EmailController.cs被定義爲這樣

[HttpPost] 
    public ActionResult statusChangeEmail(int request, string[] status_descriptions) 
    { 
     //stuff happens 
     return Json(1); 
    } 

但是每一次遇到這種情況,我得到這個錯誤訊息enter image description here

+1

你可以試試url:「/ Email/statusChangeEmail」 – ssilas777

+1

你在你的url中有太多'Email'。 –

回答

1

爲什麼您的網址是/電子郵件/電子郵件/ statusChangeEmail?它應該是/ Email/statusChangeEmail。

/Email表示EmailController和/ statusChangeEmail表示控制器動作statusChangeEmail。

+0

哇,這是一個簡單的修復。我將它命名爲這樣,因爲函數對ITRequstsController函數的調用以相同的方式完成。 http://i.imgur.com/3lVBGW7.png爲什麼這些函數在函數名前面有ITRequests/ITRequests並且仍然有效? – cdn

+1

您可以在http://www.asp.net/mvc/overview/controllers-and-routing中閱讀有關路由的更多信息。基本上你可以有任何價值被路由到一個URL。 –

相關問題