【问题标题】:Conditionally create dropdownlist with same name有条件地创建具有相同名称的下拉列表
【发布时间】:2015-05-15 18:28:05
【问题描述】:

我有一个来自模型的值来确定我是处于创建模式还是编辑模式...如果我处于编辑模式,我想将下拉列表的值设置为上次保存的值。如果我处于创建模式,我想将我的下拉列表默认为默认值....

*.ASCX

<% if(Model.isCreate == true)
   {
        Html.DropDownList("myOptionListName", 
                           new SelectList(ViewBag.MyOptions, "Id", "Name"),
                           Resources.Global.DefaultMenuItem, 
                           new { style = "width:200px" });
   }
   else
   {
        Html.DropDownList("myOptionListName", 
                           new SelectList(ViewBag.MyOptions, "Id", "Name", 
                           ViewBag.LastSavedOption), 
                           new { style = "width:200px" });
   }%>

如果我只使用一个或另一个而不使用 if,则一个菜单仅在一种情况下工作......我需要使用“myOptionListName”作为名称,因为我有其他引用此的 javascript。就目前而言,上面的代码没有呈现任何下拉菜单。

问:如何根据 if 检查显示菜单但名称相同?

【问题讨论】:

  • 不需要您的if 块。如果myOptionListName 的值与其中一个选项的值匹配,那么它将被选中,因此在控制器中设置值。并学习使用视图模型!

标签: javascript c# asp.net asp.net-mvc-4


【解决方案1】:

您可以根据您的表单模式创建选择列表,然后将适当的选择列表分配给您的控件。

<% var selectList = new SelectList(ViewBag.MyOptions, "Id", "Name");

   if(!Model.isCreate)
   {
        selectList = new SelectList(ViewBag.MyOptions, "Id", "Name", 
                           ViewBag.LastSavedOption);
   }

   Html.DropDownList("myOptionListName", selectList , 
                           new { style = "width:200px" });
   %>

【讨论】:

    猜你喜欢
    • 2020-10-12
    • 2020-03-30
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2016-01-05
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多