所以我在视图中有以下代码:
<div class="editor-field">
@Html.DropDownList("EventId", String.Empty)
@Html.ValidationMessageFor(model => model.Events)
@Html.ActionLink(null, "AddEvent", "OtherMeeting", new { eventId = ??)
</div>
在“??”我希望得到选定的值,只是我不知道如何获取所选值,因为列表没有在变量中定义,我似乎也不能给它一个名称属性或类似的东西到达列出自己。
答案 0 :(得分:1)
@Html.ActionLink(null, "AddEvent", "OtherMeeting", new { eventId = ??)
At the "??" I wish to get the selected value
不可能,因为ActionLink
发生在服务器端,并且更改您的下拉列表发生在客户端。有一种解决方法,但我想首先回答你的下一个问题:
我似乎也无法给它一个名称属性或其他东西 类似于进入列表本身
当您执行@Html.DropDownList("EventId")
时,剃刀引擎会同时为name
和id
提供两者,并且两者都具有相同的值,即EventId
。您可以将id
用于任何适合您的情况。将要编写的标记如下所示:
<select id="EventId" name="EventId">
在我们解决您的问题之前先做几件事:
DropDownList("EventId")
ActionLink
上没有链接文字? 现在要解决您的问题,您需要将ActionLink
更改为以下内容,为其提供一个ID(以及一个可选但有意义的文字)
@Html.ActionLink("Add Event", "AddEvent", "OtherMeeting", new { id="eventLink" })
然后每次更改选择时重建您的操作链接,现在是jquery中的a
标记:
$("#EventId").change(function () {
$("#eventLink").attr(
'href',
'@Url.Action("AddEvent","OtherMeeting")/' + $(this).val()
);
});