C# 如何在asp.net mvc3中单击链接时发送隐藏参数

C# 如何在asp.net mvc3中单击链接时发送隐藏参数,c#,html,asp.net-mvc-3,hyperlink,action,C#,Html,Asp.net Mvc 3,Hyperlink,Action,嗨,我使用的是mvc3,我的网站上有一个链接,目前通过了 一个参数如下所示 <a href="/Call/@Model.id">Link To Call</a> 正如您所看到的,我正在向我的操作传递一个id,现在我 需要传递另一个参数,但我不想更改路由 和目前的链接情况,我可以发送一些隐藏的东西。 我的链接看起来是一样的 我试图通过Html.ActionLink来实现这一点,但它不起作用 请帮帮我。提前感谢是的,您可以将其作为查询字符串传递 <a href="/C

嗨,我使用的是mvc3,我的网站上有一个链接,目前通过了 一个参数如下所示

<a href="/Call/@Model.id">Link To Call</a>
正如您所看到的,我正在向我的操作传递一个id,现在我 需要传递另一个参数,但我不想更改路由 和目前的链接情况,我可以发送一些隐藏的东西。 我的链接看起来是一样的

我试图通过Html.ActionLink来实现这一点,但它不起作用


请帮帮我。提前感谢

是的,您可以将其作为查询字符串传递

<a href="/Call/@Model.id?parm="+ somevalue>Link To Call</a>
链接触发Http Get请求,您希望随Get请求一起发送的任何数据都会被放入查询字符串中。若隐藏字段是动态的,你们可以在点击超链接事件时将数据附加到查询字符串中

$('#linkId').live('click', function(){
   var href = $(this).attr('href');
   href += "?param1=" + $("#hidden1").val() + "&param2=" + $("#hidden2").val();
   $(this).attr('href',href);
   return true; 
});

上面的代码将从隐藏字段中读取值并沿url发送。如果您不想这样做,您必须更改UI以使用表单或执行ajax请求。

我会这样做,因为您的隐藏字段是动态的:

将类添加到链接:

<a class="link-call" href="/Call/@Model.id">Link To Call</a>
然后,使用jQuery,您可以轻松地填充链接并发出请求

$(function() {

    $(".link-call").click(function(evt) {

        evt.preventDefault; // don't jump to /Call/2 automatically

        var url = $(this).attr("href") + "?"; // this will hold /Call/2?

        // append your hidden fields
        url += "hf1=" + $("#hf_001").val();
        url += "&hf2=" + $("#hf_002").val();
        url += "&hf3=" + $("#hf_003").val();

        // make the call
        document.location.href = url;
    });

});
您的控制器可能如下所示

public ActionResult Index(int id, string hf1, string hf2, string hf3)
{

}

如果您的路由具有ID,您可以从路由中提取ID值,而无需在方法中传递它。

我认为,如果不编辑uri,您无法执行GET请求中的请求。我认为在GET请求主体中使用post数据在技术上是可行的,但不可取。如果选择编辑uri,则需要编辑操作上的参数列表以反映这些更改


最好将其包装在表单中并提交表单。

实现这一点的最简单方法是语义=>使用HTML而不是链接。这样,所有输入字段值(包括隐藏字段值)都将自动发送,您不需要使用任何javascript来创建锚的href。因此,锚点成为表单的提交按钮。

隐藏参数是动态的吗?或者只是占位符?隐藏参数是动态的,但我的模型中有这个值,正如我之前说过的,我不想更改我的链接,我想通过另一种方式发送href表示您正在创建一个链接,如果它的链接在链接中传递值,唯一的方法就是在查询字符串中传递它。
public ActionResult Index(int id, string hf1, string hf2, string hf3)
{

}