首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SelectListItem的选定项目

SelectListItem的选定项目
EN

Stack Overflow用户
提问于 2015-03-12 11:37:06
回答 2查看 539关注 0票数 0

我正在尝试在我的Html.DropDownListFor中设置“所选的项目”

我的控制器看起来是这样的:

代码语言:javascript
复制
HttpCookie cookie = Request.Cookies["MyCookie"];
if (cookie != null)
{
    model.cookieValues = new cookieValues();
    model.cookieValues.formSelected = cookie.Values.Get("FormSelected");
}

model.formGroups = new List<SIMSClient.FormGroup>();
model.formGroups = SIMSClient.ClientFunctions.GetFormGroups(GlobalVariables.networkstuff, GlobalVariables.testAuth);

在我看来,我有一个工作的DropDownListFor:

代码语言:javascript
复制
@Html.DropDownListFor(x => x.formGroups, Model.formGroups.Select(d => new SelectListItem { Text = d.Description, Value = d.ID}), new { @id = "ddlFormGroups", @class = "form-control" })

但我无法确定如何将选定的值设置为model.cookieValues.formSelected

请问我怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-12 12:00:26

属性formGroups是复杂对象(List<SIMSClient.FormGroup>)的集合-不能将下拉列表绑定到集合( <select>绑定并回发单个值)。您的模型需要一个要绑定的属性,例如

代码语言:javascript
复制
public int SelectedID { get; set; } // assumes the ID property of FormGroup is int

然后在视野中

代码语言:javascript
复制
@Html.DropDownListFor(x => x.SelectedID, Model.formGroups.Select(d => new SelectListItem ....)

如果SelectedID的值与FormGroup的一个ID值相匹配,那么该选项将在页面首次呈现时在视图中被选中。回发时,SelectedID的值将是所选选项的值。

票数 1
EN

Stack Overflow用户

发布于 2015-03-12 11:46:12

在进行到SelectListItem的映射时,必须将属性Selected设置为true

假设model.cookieValues.formSelected保留组的ID,则可以测试数组中的任何项是否符合条件model.cookieValues.formSelected == group.ID

代码语言:javascript
复制
 @{ 
      groups = Model.formGroups.Select(d => 
               new SelectListItem 
               {
                  Text = d.Description, 
                  Value = d.ID,
                  Selected = (model.cookieValues.formSelected == d.ID)
               }); 
 }

@Html.DropDownListFor(x => x.GroupId , groups, new { @id = "ddlFormGroups", @class = "form-control" })

请注意,在您的DropDownListFor上有x => x.formGroups,这是错误的,因为它是组的列表。您需要有一个属性,其中选择的Id(值)要绑定。

例如,有一个名为GroupId的属性,您可以将其设置为string (因为SelectListItem属性Value是字符串),并根据需要在服务器上转换它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29008724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档