将选择的选择值作为参数传递给href

时间:2013-08-07 05:19:24

标签: c# asp.net-mvc

我有ahref:

<a href="@Url.Action("downloadDocument", "NewService", new { serviceId = item.ServiceId })" id="download"  target="_blank">Download</a>  

同一页面上有一个选择选项:

<select class="required" data-val="true" id="DownloadValuesId" name="DownloadValuesId">
<option value="">option1</option>
<option value="2">option2</option>
<option value="3">option3</option>
<option value="4">option4</option>
<option value="5">option5</option>
</select>  

如何将所选值作为参数发送到从ahref?

调用的控制器函数中

4 个答案:

答案 0 :(得分:1)

如果您想从下拉列表中选择任何值,请执行任何操作,请尝试以下操作:

HTML:

<select onchange = "redirect(this.value)" class="required" data-val="true" id="DownloadValuesId" name="DownloadValuesId">
<option value="">option1</option>
<option value="2">option2</option>
<option value="3">option3</option>
<option value="4">option4</option>
<option value="5">option5</option>
</select>

和javascript:

<script type="text/javascript">
       function redirect(dropDownValue) {
          window.location.href = '@Url.Action("Action", "Controller")/' + '?id=' + dropDownValue;
       }
</script>

修改

使用按钮onclick="AnyFunction()"发送值并使用任何隐藏元素。首先,为该隐藏元素提供下拉值,然后使用onclick将其发送到操作:

<a id="download" onclick="SendValue()" target="_blank">Download</a>

和js:

   <script type="text/javascript">
       function redirect(dropDownValue) {
           document.getElementById('hiddenElement').value = dropDownValue;
       }

      function SendValue() {
           window.location.href = '@Url.Action("Action", "Controller")/' + '?id=' + document.getElementById('hiddenElement').value;
       }
   </script>

您也可以使用jquery执行此操作:

$.ajax({
  type: "POST", //or GET
  url: "@Url.Action("Action", "Controller")",
  data: "{ id : 'anyValue', serviceId : 'Any value'  }",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
    //do something
  }
});

答案 1 :(得分:0)

您有两种方法可以做到这一点:

  1. 使用表单,将选择框放入其中,并使链接提交表单。这样,服务器将获得所选的值。

  2. 更改选择框选择时,使用Javascript动态更改网址。

  3. 如果可能,我会使用第一个选项。

答案 2 :(得分:0)

你可以用jquery来做,见下文。

     <script>
       $('#DownloadValuesId').change(function(){
          var link = $('#download').attr('href');
          $('#download').attr('href') = link + "?id=" + $('#DownloadValuesId').val();
       });
     </script>

hope it helps.

答案 3 :(得分:0)

你喜欢这样,

$('#buttonId').click(function(){

  var Id = $("#DownloadValuesId").val(); // Dropdown Id

 window.location.href = '@Url.Action("Action", "Controller")?DownloadValuesId=' + Id;

});