@Html.ActionLink(null, "AddEvent", "OtherMeeting", new { eventId = ??)
At the "??" I wish to get the selected value
不可能,因为ActionLink
发生在服务器端并且更改下拉列表发生在客户端。有一种解决方法,但我想先回答您的下一个问题:
我似乎也无法给它一个 name 属性或类似的东西来获取列表本身
当您执行 a 时@Html.DropDownList("EventId")
,剃刀引擎将同时赋予它 aname
和 anid
并且两者都将具有相同的值,即EventId
. 您可以将其id
用于任何适合您的目的。将要编写的标记将如下所示:
<select id="EventId" name="EventId">
在我们解决您的问题之前,先做几件事:
- 您需要为
DropDownList("EventId")
- 你没有链接文字
ActionLink
吗?
现在要解决您的问题,您需要将其更改ActionLink
为以下内容,并为其提供一个 id(以及一个可选但有意义的文本)
@Html.ActionLink("Add Event", "AddEvent", "OtherMeeting", new { id="eventLink" })
然后重建您的操作链接,现在a
每次更改选择时都会在 jquery 中添加一个标记:
$("#EventId").change(function () {
$("#eventLink").attr(
'href',
'@Url.Action("AddEvent","OtherMeeting")/' + $(this).val()
);
});