单击参数,转到Controller中的Action

时间:2014-05-21 18:42:11

标签: c# jquery asp.net-mvc-3

单击动态按钮时,我想转到控制器中的动作。

$(".myButton").click(function () {
    var var1 = "test1"
    var var2 = "test2"
    var var3 = "test3";

    location.href = '<%= Url.Action("Action","Controller") %>';
});

这很好,但是如果我尝试将变量添加到动作中,那么一切都会失败。

2 个答案:

答案 0 :(得分:1)

你混淆了范围。无法将client-side javascript变量传递给server-side执行,因此您可以为示例生成一个连接值的网址:

var var1 = "test1"
var var2 = "test2"
var var3 = "test3";

location.href = '<%= Url.Action("Action", "Controller") %>?var1=' + var1 + '&var2=' + var2 + '&var3=' + var3;

由于action中有这些参数,因此样本应该可以正常工作:

public ActionResult Action(string var1, string var2, string var3)
{
   //....
}

答案 1 :(得分:0)

您可以在生成网址时使用占位符值,然后使用.replace()

将您的控制器视为

public ActionResult Action(string p1, string p2, string p3)
{
}

的JavaScript

var var1 = "test1"
var var2 = "test2"
var var3 = "test3";

var url = '<%= Url.Action("Action","Controller", new { p1 = -1, p2 = -2, p3=-3  }) %>';
location.href = url.replace('-1',var1).replace('-2',var2).replace('-3',var3);