2017-01-26 97 views
1

我不知道爲什麼我的代碼不起作用。我只是試圖對我的一個控制器進行簡單的調用,並得到一個json結果作爲回報。Ajax在MVC視圖中不起作用

在我看來,這個腳本看起來如下:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script type="text/javascript"> 
     $(document).ready(function() { 
      var serviceURL = '/WorkRolesController/checkNumRoles'; 

      $.ajax({ 
       type: "POST", 
       url: '@Url.Action("checkNumRoles", "WorkRolesController")', 
       dataType: "json", 
       success: successFunc, 
       error: errorFunc 
      }); 

      function successFunc(data, status) { 
       alert(data); 
      } 

      function errorFunc() { 
       alert('error'); 
      } 
     }); 
</script> 

這裏是在控制器(簡化)操作方法的樣子:

[HttpPost] 
    public ActionResult checkNumRoles() 
    { 

     return Json("skat", JsonRequestBehavior.AllowGet); 
    } 

我目前正在與字符串得到一個警報'錯誤',每次我加載頁面。

我錯過了什麼?

+0

嘗試'網址:「/ WorkRoles/checkNumRoles'' –

回答

2

Url.Action中提供控制器名稱時,不需要包含Controller後綴。試試這個:

url: '@Url.Action("checkNumRoles", "WorkRoles")', 

還要注意JsonRequestBehavior.AllowGet是多餘的,因爲它是一個POST請求只有這裏有一個完整的例子:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      type: "POST", 
      url: '@Url.Action("checkNumRoles", "WorkRoles")', 
      dataType: "json", 
      success: function(data, status) { 
       alert(data); 
      }, 
      error: function() { 
       alert('error'); 
      } 
     }); 
    }); 
</script> 
[HttpPost] 
public ActionResult checkNumRoles() 
{ 
    return Json("skat"); 
} 
+0

謝謝!這是問題...哦,上帝......:D –

+0

沒問題,很高興幫助:) –

相關問題