使用 Javascript 操作 Link 并将值传递给控制器

Action Link with Javascript and pass value to controller

我正在我的应用程序中使用操作 link。

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

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

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

现在点击操作事件 link 我在函数中计算两个值,我还需要将这些值传递到我要重定向的页面。

我不知道该怎么做。

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

编辑:-

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

现在我需要将这些 "a" 和 "b" 值传递到重定向页面。

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

通过这种方式,您的值将不会显示在 URL(Query String)

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;
}

您可以通过 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