2017-01-26 2 views
1

を働いていません。私はちょうど私のコントローラの1つに簡単な呼び出しを行い、返されたjson結果を取得しようとしています。私の見解でAjaxのMVCのビューに私のコードは動作しませんなぜ私にはわからない

スクリプトは次のようになります:

[HttpPost] 
    public ActionResult checkNumRoles() 
    { 

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

私は現在の文字列でアラートを取得する:

<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> 

そして、ここでは、コントローラ内(簡体字)アクションメソッドがどのように見えるかです私がページを読み込むたびに、その中に「エラー」があります。

私には何が欠けていますか?

+0

試し 'URL:「/ WorkRoles/checkNumRoles'' –

答えて

2

あなたはUrl.Actionでコントローラ名を提供するときControllerサフィックスを含める必要はありません。これを試してみてください:

<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

おかげ

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

はまたJsonRequestBehavior.AllowGetの点に注意してください。それだけでここでPOSTリクエストだとして冗長であることは完全な例です!これは問題だった...ああ、神...:D –

+0

問題ない、喜んで:) –

関連する問題