0

所以我认为我有以下代码:

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

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

4

1 回答 1

1
@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">

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

  1. 您需要为DropDownList("EventId")
  2. 你没有链接文字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()
        );
});
于 2013-04-30T09:15:33.440 回答