我有两个部分视图 - 一个用于添加数据,另一个用于编辑。 其中一个字段代表几个月,所以为了插入那个字段,我创建了一个带有for循环的ViewBag,从1到12填充它。这很好。
我的问题是如何进行编辑?如何创建将显示编辑月数的相同DropDown列表?
这就是我插入的内容:
在我的控制器中:
var lMesec = new List<int>();
for (int i = 1; i <= 12; i++)
{
lMesec.Add(i);
}
ViewBag.listaMesec = new SelectList(lMesec);
在我看来:
@Html.DropDownListFor(model => model.mesec, ViewBag.listaMesec as SelectList, "Izaberite mesec", new { @class = "form-control"})
当我在阅读数据进行编辑时,我认为这是:
@Html.EditorFor(model => model.mesec, new { htmlAttributes = new { @class = "form-control" } })
如何将其设置为DropDown列表,其值可以是1-12?
我正在使用SqlDataAdapter读取数据,所以我有这个值:
model.mesec = dt.Rows[0][3] != DBNull.Value ? Convert.ToInt32(dt.Rows[0][3]) : 0;
答案 0 :(得分:1)
您可以创建表单助手类。像[yourname] .cs(建议在formhelper文件夹中的所有表单助手,以便于访问/定位)
@Html.numberDropdownlistFor(x => x.Number)
然后在您的表单中,您将调用新创建的ddl,如:
{{1}}
这在过去对我有用,但有更大的下拉列表。 希望这有帮助 - 也可以交换数字及其相关的拼写版本
答案 1 :(得分:0)
答案很简单,@ ADyson提供了它。 我所要做的就是在编辑表单上使用相同的DropDownListFor,并在控制器的编辑部分中定义该列表。