2013-04-25 78 views
1

我正在使用MVC 2並試圖對控制器方法進行ajax調用。向控制器發送Ajax調用

控制器:

 [HttpGet] 
     public ActionResult FirstAjax() 
     { 
      return View(); 
     } 

     [HttpPost] 
     public ActionResult FirstAjax(string a) 
     { 

      return Json("chamara", JsonRequestBehavior.AllowGet); 

     } 

查看:

<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 

      var serviceURL = '<%= Url.Action("FirstAjax", "AjaxTest") %>'; 

      $.ajax({ 
       type: "POST", 
       url: serviceURL, 
       data: param = "", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: successFunc, 
       error: errorFunc 
      }); 

      function successFunc(data, status) { 

       alert(data); 


      } 

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

在上面的代碼,請注意我的控制器。讓代碼工作我不得不添加到方法與HTTPPOSTHTTPGET甚至參數a是不相關的我剛剛添加它,因爲我不能添加兩個方法具有相同的簽名。

我想這可能不是正確的做法。請解釋這種代碼最適合的方法。

UPDATE:

添加與POST出來一個方法和GET不起作用。它只是打印不點火

public ActionResult FirstAjax() 
     { 

      return Json("chamara", JsonRequestBehavior.AllowGet); 

     } 
+0

請我更新的答案。 – RGR 2013-04-25 04:12:15

回答

0

的page.alert字符串「chamara」既然你不能有兩個方法具有相同的名稱和簽名,你必須使用ActionName屬性:

UPDATE:

[HttpGet] 
    public ActionResult FirstAjax() 
    { 
     Some Code--Some Code---Some Code 
     return View(); 
    } 

    [HttpPost] 
    [ActionName("FirstAjax")] 
    public ActionResult FirstAjaxPost() 
    { 
     Some Code--Some Code---Some Code 
     return View(); 
    } 

請參考this鏈接進一步參考方法如何成爲一個行動。雖然很好的參考。

0

從你的解釋我認爲你需要什麼樣的代碼是這樣的:

AjaxTestController.cs

[HttpGet]   
public ActionResult FirstAjax() 
{ 
    return Json("chamara", JsonRequestBehavior.AllowGet); 
}  

腳本:

<script type="text/javascript"> 
     $(document).ready(function() { 

     var serviceURL = '<%= Url.Action("FirstAjax", "AjaxTest") %>'; 

     $.ajax({ 
      type: "GET", 
      url: serviceURL,    
      success: successFunc, 
      error: errorFunc 
     }); 

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

     function errorFunc(xhr, status, err) {    
      alert('error'); 
     } 

     }); 
</script>