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

时间:2009-06-11 02:57:49

标签: asp.net-mvc drop-down-menu

我遇到问题"Html.DropDownList in ASP.NET MVC RC (refresh) not pre-selecting item"

中所述的类似问题

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

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

除非忽略我预先选择的项目

,否则这一切都很好

如果我删除了额外的功能:

<%=Html.DropDownList("SelectList")%>

很高兴并将使用我预先选择的项目。 但是我没有得到Javascript操作!

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

3 个答案:

答案 0 :(得分:19)

Found the Answer

当给控件的名称时(本例中的第一个参数是“SelectList”) 与ViewData字典中的一个键相同,基本上它会搞砸并忽略SelectList中预先选择的项

只需重命名DropDownList即可正常工作并绑定到预选项

答案 1 :(得分:0)

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

编写代码时:

<%=Html.DropDownList("SelectList", (SelectList)ViewData["SelectList"], [htmlAttribute])

基本上在Controller中你可以编写htmlattribute并在dropdownlist方法中分配它。

答案 2 :(得分:0)

我知道这是一篇旧帖子,但我找到了一个链接,显示了一个解决方法,您可以在下拉列表中保留相同的名称,并在表单帖子上保留模型的数据绑定:

http://publicityson.blogspot.com/2010/07/aspnet-mvc-htmldropdownlist-not-showing.html

我认为这是一个巨大的错误,我很惊讶它尚未修复。无论如何,我希望这会有所帮助。