Html DropDownListFor没有正确设置所选值;即使我传入选定的值,也会显示默认值

时间:2014-09-22 18:39:34

标签: asp.net-mvc razor html.dropdownlistfor selected

我的网页上有一个搜索框,需要填充以前的搜索字词;即,如果某人搜索First name: John,则名字框会显示已输入John

我有几个下拉列表,除family member下拉菜单外,所有这些列表都有效。例如,这有效:

    @Html.DropDownListFor(m => m.Database, new SelectList(@Model.DatabaseDropdown))

我得到了一个包含所有可用数据库列表的下拉列表(位于viewmodel中),如果搜索中包含了一个数据库,则该数据库已被选中。但是,我还有3个下拉列表(每个家庭成员搜索字段一个),用于选择家庭成员类型(FatherMotherSpouse,或默认标签{{1 }})。

Family Member

这是完全相同的格式,我知道FamilyMembers [0] .Relationship有一个值,因为当我添加它时:

    @Html.DropDownListFor(m => m.FamilyMembers[0].Relationship, new SelectList(@Model.FamilyTypes))

并从下拉列表中选择 <text>@Model.FamilyMembers[0].Relationship</text> @Html.DropDownListFor(m => m.FamilyMembers[0].Relationship, new SelectList(@Model.FamilyTypes)) 并进行搜索,页面会在选择框上方显示Father,但选择框本身的默认值为Father

我也试过了:

Family Members.

我手动放入选择列表,但是对于这两个版本,选择列表始终显示没有选择任何值(即显示 @Html.DropDownListFor(m => m.FamilyMembers[0].Relationship, new SelectList(new List<string>() { "Family Member", "Father", "Mother", "Spouse" })) ),即使FamilyMembers [0] .Relationship是有效值在列表中。

编辑:这是模型

Family Members

1 个答案:

答案 0 :(得分:0)

尝试以下方法 -

将模型修改为

public class SearchResultsViewModel
{
  public List<String> CategoryDropdown { get; set; }
  public List<NehgsRelationship> FamilyMembers { get; set; } 
  public String Relationship {
    get {
      return FamilyMembers[0].Relationship
    }
  }
}

然后使用

修改您的视图
 @Html.DropDownListFor(m => m.Relationship, new SelectList(@Model.FamilyTypes))