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