将所选记录ID传递给href

时间:2014-08-28 14:53:44

标签: jquery asp.net-mvc href

我想使用href来调用控制器,然后在视图中显示数据。我测试了以下href并且它有效:

<a href="/Samples/Create?id=@Model.ID" class="btn btn-primary btn">Add Sample/a>

但是,我需要传递的id是我可以使用Ajax方法获得的选定记录ID:

var id = $('[name="RadioRequest"]:checked').prop('id');

问题是我无法将id传递给href,因为id不是视图级变量。

问题是:在href中表达此选定(单选按钮)id的语法是什么?我尝试将$('[name="RadioRequest"]:checked').prop('id')复制并粘贴到href中以获取:

<a href="/Samples/Create?id=$('[name="RadioRequest"]:checked').prop('id')" class="btn btn-primary btn">Add Sample/a>.

它不起作用。

2 个答案:

答案 0 :(得分:0)

尝试转发&#34; RadioRequest&#34;

周围的双引号
<a href="/Samples/Create?id=$('[name=\"RadioRequest\"]:checked').prop('id')" class="btn btn-primary btn">Add Sample/a>

答案 1 :(得分:0)

我很确定这已经在SO上多次回答了,但只是因为lulz ill提供了一些答案。

首先,您无法将javascript嵌入到href中。除非你使用javascript来改变href属性,否则它将保持静态。

最简单的方法是将其包装在一个表单中。在您的上下文中它可能在语义上是正确的,但如果您将其包装在表单中,它将自动提供您的表单字段(包括所选单选按钮的值。

以下是将其作为表单提交的示例。您必须将其应用于您的代码。

 <html>
  <body>
    <form name="form1" action="" method="get">
      <input type="radio" name="rad" value="1"/> <!--You will need to set value dynamically. 
      <input type="radio" name="rad" value="2"/> You could also change name="rad" to name="id" if you specifically need that to be the name -->

      <a href="#" onclick="form1.submit()">Submit</a>
   </form>

 </body>

 </html>

基本上你只需给单选按钮命名即可。提供的值将是选择的任何值(值可能是您的ID)。 action属性是你要发送给它的uri,而method =“get”确保它在查询字符串中提供。 Anchor标签没有网址,只是在表单上执行提交。

如果您想严格按照javascript进行操作,可以选择一些路线。

首先,您可以使用一个事件处理程序来单击单选按钮,以便在您选择它时更改锚标记的href属性。

 <html>
   <body>
     <script type="text/javascript">
      var url = "http://www.yahoo.com";

      function ChangeUrl(val){

        var newUrl = url + "?=" + val;
        document.getElementById("myLink").href=newUrl;
      }
 </script>
   <input type="radio" name="rad" onclick="ChangeUrl(1)"/> <!-- onclick should be onselect, but I couldn't get that working in my test code so I went with what works. -->
   <input type="radio" name="rad" onclick="ChangeUrl(2)"/>

   <a href="#" id="myLink">Submit</a>

 </body>

</html>

同样,您需要考虑如何在代码中执行此操作,但这是一个普遍的想法。