C# 在actionlink中使用选择选项值

C# 在actionlink中使用选择选项值,c#,parameters,html.actionlink,C#,Parameters,Html.actionlink,我仅仅通过执行新的{option=A}就可以使它工作,但这只会发送一个 如何使用所选值?当页面首次呈现时,将创建ActionLink。当用户从dropdownlist中选择时,它不会更新,它将具有相同的初始值。因此,您需要使用javascript或jquery更新锚href值 实现这一点的方法有很多,以下是一种不引人注目的方法: 1为ActionLink提供一个ID: if (@ViewBag.Title == "Title") { @ViewBag.Title <div class="

我仅仅通过执行新的{option=A}就可以使它工作,但这只会发送一个


如何使用所选值?

当页面首次呈现时,将创建ActionLink。当用户从dropdownlist中选择时,它不会更新,它将具有相同的初始值。因此,您需要使用javascript或jquery更新锚href值

实现这一点的方法有很多,以下是一种不引人注目的方法:

1为ActionLink提供一个ID:

if (@ViewBag.Title == "Title")
{

@ViewBag.Title
<div class="btnNEW" hidden id="fqXLS">
<select id = "fqcXLS">
<option id ="fqcXLSa">A</option>
<option id ="fqcXLSb">B</option>
<option id ="fqcXLSc">C</option>
<option id ="fqcXLSd">D</option>
</select>

@Html.ActionLink("Export To Excel", "ExportToExcel", "EEC", new { option = ??? }, new { @class = "cancel" })
</div>
}
2为下拉列表的onchange事件添加事件侦听器文档准备好/加载后应调用此函数:

@Html.ActionLink("Export To Excel", 
                 "ExportToExcel", 
                 "EEC", 
                  null, 
                  new { @id = "lnkCancel", @class = "cancel" })
这将在更改选择列表时更新锚href属性

var ddl=document.getElementById'mySelect'; ddl.addEventListener'change',函数{ var url='somesite/myaction';//基本url var link=document.getElementById'lnkCancel';//获取要更新的链接 var selectedValue=ddl.options[ddl.selectedIndex].value;//获取所选值 link.href=url+'?option='+selectedValue;//更新链接href link.innerText=link.href;//不包括此内容,它只显示url文本 }; A. B C D E
看起来没有一个标记填充了其value属性。还取决于您希望如何使用所选值?如果在Javascript中看到这个答案,那么,在使用值设置我的选项之后,如何从actionlink传递它?option=document.getElementByIdfqxXLS.value?或者类似的东西?我还尝试了@Html.ActionLinkExport To Excel,ExportToExcel,EEC,new{option=getCategory;},new{@class=cancel}创建一个函数来返回ID的值,然后在actionlink内调用该函数。给actionlink一个id``=>@Html.ActionLinkExport to Excel,ExportToExcel,EEC,new{@id=fqcXLS},new{@class=cancel}``像这样似乎不起作用1?它不是按照我写的方式工作吗@@id应该在设置@class标记的HtmlAttributes下设置。你也可以用一个普通的带有id的锚标记替换Html.ActionLink。你是怎么写的?我不知道lnkCancel的用途是什么,当选择列表更改时,您需要更改链接的URL。一种方法是为链接ActionLink提供一个ID,以便您可以更改该值。lnkCancel只是我给它起的名字,你可以给它起任何名字。您需要使用javascsript或jquery来做您希望它做的事情,没有它是不可能的@机车
// get the dropdownlist
var ddl = document.getElementById('fqcXLS');

// add event listener for 'onchange'
ddl.addEventListener('change', function () {
    var url = '@Url.Action("ExportToExcel", "EEC")';           // base url
    var link = document.getElementById('lnkCancel');           // get link to update 
    var selectedValue = ddl.options[ddl.selectedIndex].value;  // get selected value
    link.href = url + '?option=' + selectedValue;              // update link href
});