【问题标题】:ASP.net MVC DropDownList Pre-Selected item ignoredASP.net MVC DropDownList 预选项目被忽略
【发布时间】:2012-05-02 00:27:16
【问题描述】:

我正面临问题"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 事件中?

【问题讨论】:

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


【解决方案1】:

Found the Answer

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

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

【讨论】:

  • 谢谢!我也是,虽然我在 30 分钟后发现了这个。
【解决方案2】:

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

当你写代码时:

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

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

【讨论】:

  • 感谢您的回答,但如果您阅读我的完整问题,您会发现我可以像您刚才所说的那样让它工作,但它不使用我预先选择的项目
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2020-02-11
    • 1970-01-01
    相关资源
    最近更新 更多