Теги можно выбирать по нескольким критериям и извлекать из базы данных.asp.net mvc ListBoxFor - MultiSelectList не применяет выбранный элемент
Это мое действие в контроллере:
public ActionResult EditDocument(long documentId, string returnURL)
{
ViewBag.returnURL = returnURL;
int userId = AccountController.GetLoggedInId(Session);
string pageUrl = "Document/EditDocument";
if (IsDocumentAccessible(documentId,pageUrl) && CheckOperation("EditDocument",pageUrl))
{
try
{
spGetDocumentById_Result found = db.spGetDocumentById(documentId).ToArray()[0];
EditDocumentViewModel model = new EditDocumentViewModel()
{
DocumentId = found.DocumentId,
DocumentNumber = found.DocumentNumber,
DocumentDate = found.DocumentDate,
DocumentLevelType = (int)found.DocumentLevelTypeId,
AddressSrc = found.Address
};
List<spGetTagsOfDocument_Result> tags = db.spGetTagsOfDocument(documentId).ToList();
foreach (spGetTagsOfDocument_Result tag in tags)
{
model.selectedTags.Add(tag.TagName);
}
List<spGetAllDocumentLevelType_Result> DocumentLevelTypeList = db.spGetAllDocumentLevelType(userId, pageUrl).ToList();
ViewBag.DocumentLevelTypeId = new SelectList(DocumentLevelTypeList, "DocumentLevelTypeId", "DocumentLevelTypeName");
List<spGetAllTags_Result> TagList = db.spGetAllTags(AccountController.GetLoggedInId(Session), "Document/AddDocument").ToList();
ViewBag.tags = new MultiSelectList(TagList, "TagId", "TagName", model.selectedTags.ToArray());
return View(model);
}
catch (Exception)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
}
return new HttpStatusCodeResult(HttpStatusCode.Forbidden);
}
и вид:
<div class="form-group">
@Html.LabelFor(model => model.tags, new { @class = "col-sm-3 control-label" })
<div class="col-sm-8">
@Html.ListBoxFor(model => model.tags, ViewBag.tags as MultiSelectList, new { @class = "form-control" })
</div>
</div>
Дело в том, что выбранный пункт не применяется! Элемент multi-select заполнен отлично, но нет выбора!
Вот аналогичный вопрос, который может помочь вам: http://stackoverflow.com/questions/17021978/how-to-get-multiselected-dropdownlist-values-in-asp -net-mvc/17023462 # 17023462 – Evonet