如何在MVC 3中的Jquery中传递调用控制器方法的参数?

时间:2013-06-28 07:57:23

标签: jquery asp.net-mvc-3

我正在开发MVC应用程序。 我在视图中编写了一个JQuery。 但对传递参数感到困惑...... 怎么写呢?

查看代码------

  function ValidateSanctionAmount()
    {

      var amt1=$('#Amount1').val();
      var amt2=$('#Amount2').val();

  var url1 = '@Url.Action("checkPOAmountsValidations", "PaymentAdviceController", new { POId : "a", SanctionedAmt : "b" })';
                        url1 = url1.replace("a",amt1);
                        url1 = url1.replace("b",amt1);

                        url1 = url1.replace("sanctionedAmount",param1);

                        $.ajax({
                            url: url1,
                            type: "GET",
                            success: function (Data) {
                                $('#divNewInvoice').append(Data);
                            }
                        });

控制器代码-----

   public JsonResult checkPOAmountsValidations(int POId,double SanctionedAmt)
          {
                var oPurchaseOrderHelper = new PurchaseOrderHelper();
                bool b;
                int POId1 =POId;
                double SanctionedAmt1 = SanctionedAmt;

                b = oPurchaseOrderHelper.GetAmountsSumForValidation(POId1, SanctionedAmt1);

                if (b == true)
                {
                    return Json(true);
                }
                else
                {
                    return Json(false);
                }

          }

------代码在视图中 enter image description here

------控制器中的代码

enter image description here

1 个答案:

答案 0 :(得分:2)

更新:由于您使用的是ajax,因此您无需执行 url1.replace

var url1 = '@Url.Action("checkPOAmountsValidations", "PaymentAdviceController")';
$.ajax({
    url: url1,
    data : JSON.stringify({ POId : amt1, SanctionedAmt: amt2 }),
    dataType : "JSON",
    type: "GET",
    success: function (Data) {
        $('#divNewInvoice').append(Data);
    }
});

旧:

试试这个,生成动作URL时JavaScript不会执行。

function ValidateSanctionAmount()
{
    var amt1=$('#Amount1').val();
    var amt2=$('#Amount2').val();

    var url1 = '@Url.Action("check", "controller1", new { param1= "-1", param2= "-1" })';
    url1 = url1.replace("-1",amt1);
    url1 = url1.replace("-2",amt2);
}

控制器方法:

public class controller1: Controller
{
    public ActionResult check(double param1, double param2)
    {
        //Do whatever
        return View();
    }
}
相关问题