添加值到动态填充列表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>

所以,上面的代码工作,但我卡住了,弄清楚如何插入一个空行在下拉菜单

添加值到动态填充列表c#

我对@不太熟悉,但是,如果您尝试过过载?

@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");
    }
}