Asp.net mvc 如何从视图中的下拉列表中获取Selecteditem?

Asp.net mvc 如何从视图中的下拉列表中获取Selecteditem?,asp.net-mvc,html-select,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 = ??) </di

因此,我认为有以下代码:

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

@DropDownList(“EventId”,String.Empty)
@Html.ValidationMessageFor(model=>model.Events)
@ActionLink(null,“AddEvent”,“OtherMeeting”,新的{eventId=??)
在“?”处,我希望获取所选值,只是我不知道如何获取所选值,因为列表没有在变量中定义,我似乎也无法为其指定名称属性或类似的内容来获取列表本身

@Html.ActionLink(null, "AddEvent", "OtherMeeting", new { eventId = ??)
At the "??" I wish to get the selected value
不可能,因为
ActionLink
发生在服务器端,而更改下拉列表发生在客户端。有一个解决方法,但我想先回答您的下一个问题:

我似乎也不能给它起个名字,比如财产之类的 类似于访问列表本身

当您执行
@Html.DropDownList(“EventId”)
时,razor引擎将为它提供一个
名称
和一个
id
,两者都具有相同的值,即
EventId
。您可以将该
id
用于任何适合您的姿势。将编写的标记如下所示:

<select id="EventId" name="EventId">
然后重新构建操作链接,现在每次更改选择时,jquery中都会出现一个
a
标记:

$("#EventId").change(function () {
    $("#eventLink").attr(
        'href',
        '@Url.Action("AddEvent","OtherMeeting")/' + $(this).val()
        );
});

如果您需要直接从视图中获取此值,请使用javascript/jquery。如果您需要将其传递给控制器中的方法,请在方法中添加一个参数-string EventId。我需要直接从视图中获取此值,但我没有任何jquery方面的经验,因此如果可能的话,我不希望使用该值1。我为dropdownlist,只是我没有在这里显示它,我在控制器中创建了它。2.不,它应该没有文本,因为我稍后会用css给它一个布局。谢谢你澄清ActionLink名称和id属性,我不知道。虽然我真的不明白我应该用javascript做什么,但我绝对没有经验老实说,我甚至不知道这些代码行应该放在哪里。最佳实践要求脚本应该放在body标记的末尾之前,这甚至不是ASP.Net。您应该有这样的内容:
这是放置我的js答案的地方。
。这不理想,因为您可能有其他带有id元素的页面但这是最简单的解释方法。您可能想帮助您开始使用MVC+jquery。好的,谢谢,我会这样做的,因为我怀疑以后会需要更多:)
$("#EventId").change(function () {
    $("#eventLink").attr(
        'href',
        '@Url.Action("AddEvent","OtherMeeting")/' + $(this).val()
        );
});