如何从视图中的下拉列表中获取Selecteditem?

时间:2013-04-30 08:53:02

标签: asp.net-mvc html-select

所以我在视图中有以下代码:

<div class="editor-field">
        @Html.DropDownList("EventId", String.Empty)   
        @Html.ValidationMessageFor(model => model.Events)
        @Html.ActionLink(null, "AddEvent", "OtherMeeting", new { eventId = ??)  
</div>

在“??”我希望得到选定的值,只是我不知道如何获取所选值,因为列表没有在变量中定义,我似乎也不能给它一个名称属性或类似的东西到达列出自己。

1 个答案:

答案 0 :(得分:1)

@Html.ActionLink(null, "AddEvent", "OtherMeeting", new { eventId = ??)
At the "??" I wish to get the selected value

不可能,因为ActionLink发生在服务器端,并且更改您的下拉列表发生在客户端。有一种解决方法,但我想首先回答你的下一个问题:

  

我似乎也无法给它一个名称属性或其他东西   类似于进入列表本身

当您执行@Html.DropDownList("EventId")时,剃刀引擎会同时为nameid提供两者,并且两者都具有相同的值,即EventId。您可以将id用于任何适合您的情况。将要编写的标记如下所示:

<select id="EventId" name="EventId">

在我们解决您的问题之前先做几件事:

  1. 您需要为DropDownList("EventId")
  2. 分配一个列表
  3. ActionLink上没有链接文字?
  4. 现在要解决您的问题,您需要将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()
            );
    });