代码之家  ›  专栏  ›  技术社区  ›  Andrew Harry

已忽略ASP.net MVC DropDownList预选项

  •  9
  • Andrew Harry  · 技术社区  · 17 年前

    我正面临一个类似的问题 "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 回复  |  直到 9 年前
        1
  •  20
  •   Community Mohan Dere    9 年前

    Found the Answer

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

    只需重命名DropDownList,它就可以正常工作并绑定到预先选择的项

        2
  •  0
  •   Jack Marchetti    17 年前

    不幸的是,我不在工作,所以我不能得到真正的代码。但是,我通过在控制器中将javascript事件作为html属性编写,然后在ViewData中传递它来实现这一点。

    编写代码时:

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

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

        3
  •  0
  •   Tom Schreck    14 年前

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

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

    我认为这是一个巨大的错误,很惊讶它还没有被修复。不管怎样,我希望这能有帮助。