简体   繁体   English

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

[英]Action Link with Javascript and pass value to controller

I am using action link in my application. 我在我的应用程序中使用操作链接。

I am having some requirement to call javascript on it's click event. 我有一些要求在它的点击事件上调用javascript。

I know that I can do that using following code. 我知道我可以使用以下代码来做到这一点。

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

Now on the click event of action link I am computing two values in function and i also need to pass that values to the page in which I am redirecting. 现在在click事件链接上我正在计算函数中的两个值,我还需要将这些值传递给我重定向的页面。

I don't know how can I do that. 我不知道怎么能这样做。

Please is there any way to pass the calculated value in from javascript function to redirection page? 请问有什么方法可以将计算出的值从javascript函数传递到重定向页面?

EDIT :- 编辑: -

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

Now i need to pass these "a" and "b" values to the redirection page. 现在我需要将这些“a”和“b”值传递给重定向页面。

You can pass data through QueryString as shown :- 您可以通过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 小提琴

Create two hidden fields in form. 在表单中创建两个隐藏字段。 assign values before submiting form may be on onClick event. 在提交表单之前分配值可能在onClick事件上。 so you will get those values in HttpPost action. 所以你将在HttpPost动作中获得这些值。

By this way your values will not be show in URL(Query String) 通过这种方式,您的值将不会显示在URL(查询字符串)中

HTML 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 JavaScript的

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM