ASP.NET MVC 让@Html.DropDownList显示默认值

 

    一、View代码

        

 

  1.   @using (Ajax.BeginForm("Edit", new AjaxOptions() { OnSuccess = "afterEdit" }))
  2.   {
  3.   @Html.HiddenFor(model => model.ID)
  4.   @Html.HiddenFor(model => model.isUsed)
  5.    
  6.   <div style="padding: 40px 40px 30px 50px;">
  7.   <table style="font-size:12px" align="center">
  8.   <tr>
  9.   <td>@Html.Label("评论人职务:")</td>
  10.   <td>@Html.DropDownList("YzPositionCriticsID", ViewData["CriticsPositionType"] as SelectList)</td>
  11.   </tr>
  12.   <tr>
  13.   <td>@Html.Label("被评论人职务:")</td>
  14.   <td>@Html.DropDownList("YzPositionEvaluationID", ViewData["EvaluationPosition"] as SelectList)</td>
  15.   </tr>
  16.   <tr>
  17.   <td>@Html.Label("权重:")</td>
  18.   <td>@Html.TextBoxFor(model => model.Weight)</td>
  19.   </tr>
  20.   </table>
  21.   </div>
  22.    
  23.   }

 

 

    二、Controller代码    

        

 

  1.   public ActionResult Edit(string id)
  2.   {
  3.   //6.1根据ID从数据库中查出要修改的相关数据
  4.   Guid Gid = new Guid(id);
  5.   Model.DTO.YzWeightEntityDTO weight = weightBLL.LoadEnities(u => u.ID == Gid).FirstOrDefault().ToDto();
  6.    
  7.   //6.2查询YzPositionEntity实体的数据
  8.   List<Model.DTO.YzPositionEntityDTO> positionList = positionBLL.LoadEnities().ToList().Select(s => s.ToDto()).ToList();
  9.    
  10.   //6.3将YzPositionEntity的数据封装到 SelectList中,制定要生成下拉框选项的value和text属性
  11.   SelectList selList1 = new SelectList(positionList, "ID", "PositionType", weight.YzPositionCriticsID);
  12.   SelectList selList2 = new SelectList(positionList, "ID", "PositionType",weight.YzPositionEvaluationID);
  13.    
  14.   //6.4把生成的集合放到ViewData中
  15.   ViewData["CriticsPositionType"] = selList1;
  16.   ViewData["EvaluationPosition"] = selList2;
  17.   return View(weight);
  18.   }

 

 

     在这里需要注意的是:SelectList selList1 = new SelectList(list,"","",***),这里的***就是下拉框加载时候要显示的默认值。

     

     最后的显示效果如下:

     ASP.NET MVC 让@Html.DropDownList显示默认值

    

     总结:

     在MVC的学习过程中,总会时不时遇到一些小问题,需要转个弯才能找到答案。在解决问题的过程中经验真的很重要,它能告诉你一个问题的突破点在什么地方;除此之外,熟练的使用API文档也是解决问题的重要途径;最后,真的发现解决问题是提高自己学习兴趣的不接动力。

    

上一篇:ViewData对于从后台传list到前台的使用


下一篇:【Asp.net】MVC中ViewBag、ViewData和TempData的区别与实例