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

Action Link with Javascript and pass value to controller

本文关键字:值传 控制器 使用 Javascript 链接 Action      更新时间:2023-09-26

我在应用程序中使用操作链接。

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

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

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

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

我不知道我该怎么做。

请问有没有办法将计算值从javascript函数传递到重定向页面

编辑:-

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

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

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

在表单中创建两个隐藏字段。在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;
}