单击动态按钮时,我想转到控制器中的动作。
$(".myButton").click(function () {
var var1 = "test1"
var var2 = "test2"
var var3 = "test3";
location.href = '<%= Url.Action("Action","Controller") %>';
});
这很好,但是如果我尝试将变量添加到动作中,那么一切都会失败。
答案 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);