• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP.NET MVC中为DropDownListFor设置选中项的方法

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

    □ 思路

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

      通过遍历ListSelectListItem>类型对象实例

    □ 控制器

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

    □ 前台视图显示

    @model DomainModel
    @Html.DropDownListFor(m => m.SomeProperty,(ListSelectListItem>)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();
     ListSelectListItem> selectListItems = new ListSelectListItem>();
     
     //遍历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)
         {
           IListProject> 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>

    您可能感兴趣的文章:
    • Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码
    • asp.net mvc下拉框Html.DropDownList 和DropDownListFor的常用方法
    • 使用asp.net MVC4中的Bundle遇到的问题及解决办法分享
    • asp.net MVC实现无组件上传图片实例介绍
    • ASP.NET MVC 5使用X.PagedList.Mvc进行分页教程(PagedList.Mvc)
    • ASP.NET MVC3关于生成纯静态后如何不再走路由直接访问静态页面
    • 基于Asp.Net MVC4 Bundle捆绑压缩技术的介绍
    • ASP.NET MVC使用EasyUI的datagrid多选提交保存教程
    • Asp.net MVC scheduler的实现方法详解
    上一篇:asp.net mvc下拉框Html.DropDownList 和DropDownListFor的常用方法
    下一篇:ASP.NET实现将word文档转换成pdf的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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