我一直在处理我能够填充的下拉列表,但如果我回来编辑记录,则下拉列表没有显示所选值......
在控制器中,
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具有正确的值但是当我尝试编辑所选值时不会以某种方式返回...而是仅返回下拉列表的第一个值...
答案 0 :(得分:0)
我遇到了同样的问题。使用具有保留ID的空对象模式,项目的显示名称为“请选择...”或类似的东西。在将模型传递给视图之前,将null对象附加到集合的开头。在回来的路上的控制器中,测试它。如果该人没有选择任何内容,则可以将该属性设置为null。
这是我的问题:
DropDownListFor Not Displaying/Persisting Null for First Choice in List
您不必像现在这样明确地使用视图数据。
答案 1 :(得分:0)
控制器中的代码:
ViewBag.Services = new SelectList(a, "ServiceId", "@Servicename");
视图中的代码:
@using(@BeginForm){
SelectList services = Viewbag.Services;
@Html.DropDownListFor(model => model.ServiceID, services)
}