如何将参数从@ Url.Action传递给控制器

时间:2015-05-04 13:17:54

标签: jquery asp.net-mvc

我有buttonOnclick,它有2个参数

$('.Conteiner').on("click", ".Button", function () {
        window.location.href = '@Url.Action("Form", "State", new {numberNights, datepicker})';
    });

我需要将参数从@ Url.Action传递给控制器​​

我的控制器:

public ActionResult Form(int numberNights, string datepicker)
        {
            @ViewBag.NumberNights = numberNights;
            @ViewBag.DatePicker = datepicker;
            return View();
        }

参数numberNights传递Ok,但是datepicker总是为null。为什么呢?

1 个答案:

答案 0 :(得分:4)

首先,您需要实际命名匿名对象的成员,即:

new { numberOfNights = numberOfNights, datepicker = datepicker }

numberOfNights,可能是纯粹的意外,因为它是行动的第一个参数。

其次,确保您没有混合客户端和服务器端代码。也就是说,为了为datepicker传递一个值,它必须是Razor代码中定义的C#变量,而不是JavaScript变量。在JavaScript有机会运行之前,该值也必须存在。如果您需要在用户更改datepicker值时动态更新它,则您需要放弃在Url.Action中传递它。