当前位置: 首页 > 编程笔记 >

ASP.NET MVC中为DropDownListFor设置选中项的方法

翟淮晨
2023-03-14
本文向大家介绍ASP.NET MVC中为DropDownListFor设置选中项的方法,包括了ASP.NET MVC中为DropDownListFor设置选中项的方法的使用技巧和注意事项,需要的朋友参考一下

在MVC中,当涉及到强类型编辑页,如果有select元素,需要根据当前Model的某个属性值,让Select的某项选中。本篇只整理思路,不涉及完整代码。

□ 思路

往前台视图传的类型是List<SelectListItem>,把SelectListItem选中项的Selected属性设置为true,再把该类型对象实例放到ViewBag,ViewData或Model中传递给前台视图。

  通过遍历List<SelectListItem>类型对象实例

□ 控制器

public ActionResult SomeAction(int id)
{
  //从数据库获取Domain Model
  var domainModel = ModelService.LoadEntities(m => m.ID == id).FirstOrDefault<Model>();
 
  //通过某个方法获取List<SelectListItem>类型对象实例
  List<SelectListItem> items = SomeMethod();
 
  //遍历集合,如果当前Domain model的某个属性与SelectListItem的Value属性相等,把SelectListItem的Selected属性设置为true
  foreach(SelectListItem item in items)
  {
    if(item.Value == Convert.ToString(domainModel.某属性))
    {
      item.Selected = true;
    }
  }
 
  //把List<SelectListItem>集合对象实例放到ViewData中
  ViewData["somekey"] = items;
 
  //可能涉及到把Domain Model转换成View Model
 
  return PartialView(domainModel);
}

□ 前台视图显示

@model DomainModel
@Html.DropDownListFor(m => m.SomeProperty,(List<SelectListItem>)ViewData["somekey"],"==请选择==")

通过遍历Model集合

给View Model设置一个bool类型的字段,描述是否被选中。
把Model的某些属性作为SelectListItem的Text和Value值。根据View Model中的布尔属性判断是否要把SelectListItem的Selected设置为true.

□ View Model

public class Department
{
  public int Id {get;set;}
  public string Name {get;set;}
  public bool IsSelected {get;set;}
}

□ 控制器

public ActionResult Index()
{
 SampleDbContext db = new SampleDbContext();
 List<SelectListItem> selectListItems = new List<SelectListItem>();
 
 //遍历Department的集合
 foreach(Department department in db.Departments)
 {
  SelectListItem = new SelectListItem
  {
   Text = department.Name,
   Value = department.Id.ToString(),
   Selected = department.IsSelected.HasValue ? department.IsSelected.Value : false
  }
  selectListItems.Add(selectListItem);
 }
 ViewBag.Departments = selectListItems;
 return View();
}

下面是其它网友的补充:

后台代码:

public ActionResult Index(FormCollection collection)
     {
       IList<Project> li = Utility.SqlHelper.getProjectList();
       SelectList selec = new SelectList(li, "ID", "Name");
   
       if (collection["drop"] != null)
       {
         string projectID = collection["drop"];
         selec = new SelectList(li, "ID", "Name", projectID);//根据返回的选中项值设置选中项  
        ViewData["ruturned"] = collection["drop"];
       }
       ViewData["drop"] = selec;
      return View();
    }

前端代码:

  @using (Html.BeginForm()){
@Html.DropDownList("drop", ViewData["d"] as SelectList)
    <input  type="submit" value="查看对应分组列表" />
        }
        <p> 当前项目ID: @ViewData["ruturned"]</p>

 类似资料:
  • 本文向大家介绍select标签设置默认选中的选项方法,包括了select标签设置默认选中的选项方法的使用技巧和注意事项,需要的朋友参考一下 方法有两种。 第一种 通过<select>的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果。 第二种 为通过前端js来控制选中的项: 获取<select>标签选中项文本的js代码为: 一些其它操作<select>标签的技巧如下: 1)

  • 问题内容: 我有一个带有多个选择框的页面,如下所示: 这些是在Django中自动生成的,因此无法将CSS类,ID或属性直接应用于选项。选择元素的ID为’item-0-status’,’item-1-status’,’item-2-status’等。 我通过以下JQuery代码为选项分配颜色: 哪个工作正常。 我还希望select元素具有与selected选项相同的背景色,我正在尝试使用以下方法实现

  • 添加颜色微调器 更新片段 这是我第一次问问题,我是一名新的程序员,一直在尝试使用kotlin和java的android。我有一个应用程序,允许用户添加一件衣服,选项是通过微调器设置的。问题在于,当用户从保存的微调器中选择一个项目时,以及当我想要更新值时,如图所示,蓝色文字表示棕色是从“添加服装项目”微调器中选择的选项,但微调器显示灰色。是否有办法将微调器设置为棕色,而不是默认值。

  • 问题内容: 我正在查看,并一直停留在该选项上。 我试着看这里,所有可以用于选项排序的字母下面的链接中的引用也使我对正在发生的事情有一个大致的了解。 我不明白的是如果需要符号,在这里给出的示例中,我应该如何解释10.5数字?如果“ f”是关于设置浮点的,那么它将变为10.5(然后,我可能不知道如何设置浮点…)。 问题答案: 知道这仅适用于1D或2D阵列,通常的想法是: 当是单个格式化字符串时,它将应

  • Navicat Data Modeler 提供一些选项让你自定义用户界面和性能。 若要打开选项窗口,从菜单栏选择“工具”->“选项”。

  • Navicat 为所有工具提供完整的自定义用户界面选项。 若要打开选项窗口,请从菜单栏选择“工具”->“选项”。