ASP.net MVC DropDownList预先选择的项目被忽略

And*_*rry 9 asp.net-mvc drop-down-menu

我面临的一个问题simular如问题概述"在ASP.NET MVC RC(刷新)没有预先选择项目Html.DropDownList"

我正在使用ASP.net MVC 1.0,并且需要在更改DropDownList时关联javascript调用.

<%=Html.DropDownList("SelectList", 
                    (SelectList)ViewData["SelectList"], 
                     new { onchange="javascript:selected_droplist();" } )%>
Run Code Online (Sandbox Code Playgroud)

这一切都很好,除非它忽略了我预先选择的项目

如果我删除额外的功能:

<%=Html.DropDownList("SelectList")%>
Run Code Online (Sandbox Code Playgroud)

很高兴,并将使用我预先选择的项目. 但我没有得到Javascript动作!

那么,我如何将javascript添加到onchange事件中?

And*_*rry 20

找到了答案

当给予控件的名称(在这种情况下第一个参数是"SelectList")与ViewData字典中的一个键相同时,它基本上会搞砸并忽略SelectList中的预选项.

通过简单地重命名DropDownList,它可以正常工作并绑定到Pre-Selected项


Jac*_*tti 0

不幸的是我不在工作所以我无法获得实际的代码。不过,我通过将 javascript 事件编写为 Controller 中的 html 属性,然后将其传递到 ViewData 中来完成此操作。

当你编写代码时:

<%=Html.DropDownList("SelectList", (SelectList)ViewData["SelectList"], [htmlAttribute])
Run Code Online (Sandbox Code Playgroud)

基本上在控制器中,您将编写 htmlattribute 并在 dropdownlist 方法中分配它。