Попытка заполнить список DropDownList в зависимости от входа в систему пользователя в имени пользователя Windows. Однако, если условие не работает, список должен иметь только один элемент.Добавить пользовательский элемент в SelectListItem в состоянии If в контроллере ASP.Net MVC
Задача: Пользовательский элемент не добавляется в список при выполнении условия. Посмотрел на множество сообщений на 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>
Что бы шаги, чтобы создать список в том случае, когда состояние failes с одного пункта только который будет иметь пункт как «Без доступа».
Что такое точка ''
Вы прошли через это действие, чтобы увидеть, что' ViewData ["Locations"] 'установлено как вы ожидаете? Установили ли вы точку останова на этой строке в представлении, чтобы узнать, что такое значение 'ViewData [" Locations "]' is? Вы, кажется, подразумеваете, что то, что оно установлено в действии, и то, что вы получаете от него в представлении, не то же самое. Это так? Если нет, то проблема будет отображаться исключительно в действии и что ваш 'locationList' содержит значение« Global », если вы этого не думаете. – jmcilhinney
@StephenMuecke Вы правы, но не знаете лучшего варианта. Потому что мне нужен список, если есть данные с «Глобальным». Но если нет, то ничего не будет отображаться, кроме пользовательского текста, которого нет в БД. «Без доступа» - это просто ТЕКСТ, который следует добавить, и это то, что не знаю, как добавить. – shaz