我有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。为什么呢?
答案 0 :(得分:4)
首先,您需要实际命名匿名对象的成员,即:
new { numberOfNights = numberOfNights, datepicker = datepicker }
numberOfNights
,可能是纯粹的意外,因为它是行动的第一个参数。
其次,确保您没有混合客户端和服务器端代码。也就是说,为了为datepicker传递一个值,它必须是Razor代码中定义的C#变量,而不是JavaScript变量。在JavaScript有机会运行之前,该值也必须存在。如果您需要在用户更改datepicker值时动态更新它,则您需要放弃在Url.Action
中传递它。