Action与Javascript链接并将值传递给控制器

时间:2015-03-04 10:33:44

标签: javascript asp.net-mvc razor

我在我的应用程序中使用了动作链接。

我有一些要求在其点击事件上调用javascript。

我知道我可以使用以下代码来做到这一点。

@Html.ActionLink("Home","Index","Main",new{@onclick="OnIndexCall"});

现在在click事件链接上我正在计算函数中的两个值,我还需要将这些值传递给我重定向的页面。

我不知道怎么能这样做。

请问有什么方法可以将计算出的值从javascript函数传递到重定向页面吗?

编辑: -

function OnIndexCall(){
    var a=10;
    var b=a+20;
}

现在我需要通过这些" a"和" b"值到重定向页面。

2 个答案:

答案 0 :(得分:3)

您可以通过QueryString传递数据,如下所示: -

@Html.ActionLink("Home","Index","Main",new{ @onclick="OnIndexCall(this)" });

function OnIndexCall(elem){
    var a=10;
    var b=a+20;
    $(elem).attr('href', $(elem).attr('href') + '?a=' + a + '&b=' + b);
}

Fiddle

答案 1 :(得分:0)

在表单中创建两个隐藏字段。在提交表单之前分配值可能在onClick事件上。所以你将在HttpPost动作中获得这些值。

通过这种方式,您的值不会显示在URL(查询字符串)

HTML

<a href="/Main/Index" onclick="return OnIndexCall(this)">Home</a>
<form type="post" action="URL" id="myform">
  <input type="hidden" name="a" id="a">
  <input type="hidden" name="b" id="b">
</form>

的JavaScript

function OnIndexCall(elem){
    var a=10;
    var b=a+20;
    $("#a").val(a);
    $("#b").val(b);
    $("#myform").submit();
    return false;
}