添加值到动态填充列表c#
本文关键字:列表 填充 动态 添加 | 更新日期: 2023-09-27 17:49:43
我正在构建一个基于ASN的网页。NET MVC3与Razor模板和实体。任务是填充@Html。从数据库的下拉列表,到目前为止都很好,但现在我想在下拉列表中插入一个静态值。
代码如下
create方法public ActionResult Create()
{
var parents = db.Organizations.OrderBy(o => o.Title).ToList();
var organization = new Organization();
return View(organization);
}
从Razor模板中提取
<div class="editor-field">
@Html.DropDownList("ParentGuid",
new SelectList(ViewBag.Organizations as System.Collections.IEnumerable,
"ParentGuid", "Title", Model.ParentGuid))
</div>
所以,上面的代码工作,但我卡住了,弄清楚如何插入一个空行在下拉菜单
我对@
不太熟悉,但是,如果您尝试过过载?
@Html.DropDownList("ParentGuid",
new SelectList(ViewBag.Organizations as System.Collections.IEnumerable,
"ParentGuid", "Title", Model.ParentGuid), "Your empty option text here")
您可以在将其传递给视图之前向模型添加带有空字符串的行,不是吗?
可以在将数组添加到列表之前重新创建该数组。像这样:
List<SelectListItem> itms = new List<SelectListItem>();
var blank = new SelectListItem();
blank.Selected = true;
itms.Add(blank);
foreach (var stat in model)
{
var s = new SelectListItem();
s.Text = stat.Text;
s.Value = stat.FeedBackTypeID + "";
itms.Add(s);
}
然后使用
在您的控制器Create()中,只需在"parents"列表的头部添加一个空字符串
最后使用
<div class="editor-field">
@Html.DropDownListFor(model => model.ParentGuid,
new SelectList(ViewBag.Organizations as System.Collections.IEnumerable,
"OrganizationGuid", "Title", Model.ParentGuid), "")
</div>
为模板服务的方法如下所示
public ActionResult Create()
{
try
{
ViewBag.Organizations = db.Organizations.OrderBy(o => o.Title).ToList();
var organization = new Organization();
return View(organization);
}
catch (Exception e)
{
ViewData["error"] = string.Concat(e.Message, " ", e.StackTrace);
return RedirectToAction("Index");
}
}