2013-04-25 87 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>