我遇到问题"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事件中?
答案 0 :(得分:19)
当给控件的名称时(本例中的第一个参数是“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
我认为这是一个巨大的错误,我很惊讶它尚未修复。无论如何,我希望这会有所帮助。