【问题标题】:ASP.Net MVC dropdown selected valueASP.Net MVC 下拉选择值
【发布时间】:2011-06-10 06:21:35
【问题描述】:

我一直在处理可以填充的下拉列表,但如果我回来编辑记录,下拉列表不会显示所选值.....

在控制器中,

        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 具有正确的值,但不知何故,当我尝试编辑所选值时不返回...相反,仅返回下拉列表的第一个值...

【问题讨论】:

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


    【解决方案1】:

    我遇到了同样的问题。使用空对象模式,其中您有一个保留的 id 并且项目的显示名称是“请选择...”或类似的名称。在将模型传递给视图之前,将空对象附加到集合的开头。在返回途中的控制器中,对其进行测试。然后,如果此人未选择任何内容,您可以将该属性设置为 null。

    这是我的问题:

    DropDownListFor Not Displaying/Persisting Null for First Choice in List

    您不应该像现在这样显式地使用视图数据。

    【讨论】:

    • 嘿,我正在从数据库中获取结果。那么,你认为空模式是可能的吗?
    • 如果结果为空,则将选中的项设置为空对象
    • 结果永远不会为空。选择的值被提取并且正确的问题是当我点击编辑时它不显示选择的值
    【解决方案2】:

    控制器中的代码:

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

    查看代码:

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

    【讨论】:

    • 你确定这个答案..?
    猜你喜欢
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多