在我的自定义函数中通过ajax调用调用Action方法

时间:2013-03-11 11:37:34

标签: asp.net-mvc-3 jquery

我想通过ajax调用在我的自定义函数中使用参数调用action方法。但是这不会调用我的action方法。所以我怎样才能以这种方式调用我的action方法。 这是代码:

<script>
function myFunction(e,ids)
{
    var qty = e.value;
    if (qty == null) {
        alert("current null : " + qty + " : id - " + ids);
    }
     $.ajax({
     type: "POST",
     url:'/MyController/MyActionMethod/Parameter1/Parameter2',
     success: {
          alert("success")
     }

    });

}
</script>

我的行动方法如下:

[HttpPost]
public ActionResult MyActionMethod(int parameter1,int parameter2){}

请帮帮我。 感谢。

2 个答案:

答案 0 :(得分:0)

尝试此操作,要使'/MyController/MyActionMethod/Parameter1/Parameter2'正常工作,您需要设置自定义路线。

var Parameter1 = '';
var Parameter2 = '';
$.ajax({
    type: "POST",
    url:'/MyController/MyActionMethod?parameter1=' + Parameter1 + '&parameter2=' + Parameter2,
    success: {
        alert("success")
    }
});

另一种方法是包含data参数:

var Parameter1 = '';
var Parameter2 = '';
$.ajax({
    type: "POST",
    url:'/MyController/MyActionMethod',
    data: {
        parameter1: Parameter1,
        parameter2: Parameter2
    },
    success: {
        alert("success")
    }
});

答案 1 :(得分:0)

您需要为此目的设置自定义路线

routes.MapRoute(
            "RouteName", // Route name
            "{controller}/{action}/{param1}/{param2}",  // URL with parameters
   new { controller = "Home", action = "Index", param1 = "", param2 = "" } // Parameter defaults
        );

现在尝试使用您的ajax请求

         $.ajax({
             type: 'POST',
             url:'/MyController/MyActionMethod/Parameter1/Parameter2',
             success: {
                  alert("success")
             }

        });