如何在DropDownListFor中设置值?

时间:2019-02-23 17:53:57

标签: c# asp.net asp.net-mvc-4 razor

有CreatePage视图:

 <select name='Fields[0].TypeFields' onchange='addElement(this);'>
     <option>Type of field</option>
     <option value='1'>One of the list</option>
     <option value='2'>several of the list</option>
     <option value='3'>Drop-down list</option>
     <option value='4'>Text-string</option>
     <option value='5'>Text-paragraph</option>
  </select>
<input type="submit" value="Save">

可使用onchange ='addElement(this)展开的表格,因此名称为'Fields [0] .TypeFields'。 按下按钮会将值发送到数据库。如果选择了“列表之一”,则将发送value ='1'。 但是当我进入表单编辑页面时,该值设置为默认的“字段类型”。

 @Html.DropDownListFor(model => model.Fields[i].TypeFields, new SelectListItem[]
  {
    new SelectListItem(){ Text="Type of field", Disabled = false},
    new SelectListItem(){ Text="One of the list", Value = "1"},
    new SelectListItem(){ Text="Several of the list", Value = "2"},
    new SelectListItem(){ Text="Drop-down lis", Value = "3"},
    new SelectListItem(){ Text="Text-string", Value = "4"},
    new SelectListItem(){ Text="Text-paragraph", Value = "5"}},
    new { @onchange = "addElement(this);" })

我需要选择“ 1”作为“列表之一”。也许我选择了一种不好的方法。

 public class Field
        {
            public int Id { get; set; }
            public string TypeFields { get; set; }

            //other properties

            public int? NewFormId { get; set; }
            public virtual NewForm NewForm { get; set; }
        }
  public class NewForm
        {
            public int Id { get; set; }

             //other properties

            public virtual List<Field> Fields { get; set; }
        }

1 个答案:

答案 0 :(得分:0)

正如您所说,这是艰难的方式。如果您有100个字段,则不能像这样添加它们:)填充视图包并作为数据源提供。您可以在这里参考:https://www.c-sharpcorner.com/article/different-ways-bind-the-value-to-razor-dropdownlist-in-aspnet-mvc5/