ASP.Net MVC下拉选择值

时间:2011-06-10 06:21:35

标签: asp.net asp.net-mvc-3

我一直在处理我能够填充的下拉列表,但如果我回来编辑记录,则下拉列表没有显示所选值......

在控制器中,

        var datacontext = new ServicesDataContext();
        var serviceToUpdate = datacontext.Mapings.First(m => m.CustomerServiceMappingID == id);
        var qw = (from m in datacontext.Mapings
                  where id == m.CustomerServiceMappingID
                  select m.CustomerID).First();
        ViewData["CustomerID"] = qw;
        int b = Convert.ToInt32(serviceToUpdate.ServiceID);
        var a = datacontext.services.Select(arg => arg.ServiceID).ToList();
        ViewData["ServiceID"] = new SelectList(a,serviceToUpdate.ServiceID);

在视图中:

    @Html.DropDownListFor(model => model.ServiceID, ViewData["ServiceID"] as SelectList)

serviceToUpdate,ServiceID具有正确的值但是当我尝试编辑所选值时不会以某种方式返回...而是仅返回下拉列表的第一个值...

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。使用具有保留ID的空对象模式,项目的显示名称为“请选择...”或类似的东西。在将模型传递给视图之前,将null对象附加到集合的开头。在回来的路上的控制器中,测试它。如果该人没有选择任何内容,则可以将该属性设置为null。

这是我的问题:

DropDownListFor Not Displaying/Persisting Null for First Choice in List

您不必像现在这样明确地使用视图数据。

答案 1 :(得分:0)

控制器中的代码:

 ViewBag.Services = new SelectList(a, "ServiceId", "@Servicename");
  • ServiceId是表示下拉列表中显示的项目的键值的属性
  • @Servicename代表表示要在下拉列表中显示该项目的文本的属性。

视图中的代码:

 @using(@BeginForm){
     SelectList services = Viewbag.Services;
     @Html.DropDownListFor(model => model.ServiceID, services)
 }