2

我有 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

4 回答 4

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
  }
});
于 2013-08-07T05:25:21.130 回答
0

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

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

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

如果可能的话,我会使用第一个选项。

于 2013-08-07T05:22:52.550 回答
0

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

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

hope it helps.
于 2013-08-07T05:27:02.927 回答
0

嗨试试这样

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

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

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

});
于 2013-08-07T08:20:15.263 回答