在控制器ASP的If条件下的selectlistiitem上添加自定义项.净MVC

本文关键字:自定义 添加 MVC selectlistiitem 控制器 ASP If 条件下 | 更新日期: 2023-09-27 18:01:47

尝试根据登录windows用户的用户名填充下拉列表。然而,如果条件不满足,列表应该只有一个项目。

问题:满足条件时,自定义项未添加到列表中。看了很多关于SO的帖子,但没有运气。任何方向都有帮助。

控制器:

    public ActionResult Location()
    {
        UserPermissionDataContext dbContext = new UserPermissionDataContext();
        var viewModel = new UserDetail();
        var locationList = new SelectList(
                            (
                                from t in dbContext.UserDetails
                                where t.username.Equals(System.Environment.UserName)
                                select new SelectListItem{Text = t.location, Value = t.level}
                            ), "Value", "Text");
        if (locationList.Select(i => i.Value).Contains("Global"))
            ViewData["Locations"] = locationList;
        else
            ViewData["Locations"] = new SelectList(locationList, "Value", "No Access");
        return View(viewModel);
    }  

视图:

<tr>
    <td>Global</td>
    <td>
        <div> 
            @Html.DropDownList("location", (SelectList)ViewData["Locations"])
        </div>
    </td>
</tr>

在这种情况下,如果条件失败,只有一个条目,并且条目为"No Access",那么生成列表的步骤是什么?

在控制器ASP的If条件下的selectlistiitem上添加自定义项.净MVC

你可以使用

 if (locationList.Any(i => i.Value.Contains("Global")))