Сначала я использую модель MVC3 EF в моем проекте.
Когда пользователь создает вопрос, он / она может выбрать несколько значений CoreValue из ListBox.
Когда пользователь переходит на страницу редактирования, чтобы изменить значения CoreValues на вопрос, который я хочу, чтобы в списке уже были значения этих значений ядра, было выбрано представление о том, как я могу это сделать?
Это моя ViewModel:
public class AdminEditViewModel
{
public string QuestionText { get; set; }
public string SubjecTypeName { get; set; }
public string CoreValueName { get; set; }
public SelectList SubjectTypes { get; set; }
public IEnumerable<string> SelectedValuesOfCoreValues { get; set; }
public IEnumerable<CoreValue> CoreValues { get; set; }
}
и это мои действия GET и POST в моем контроллере:
public ActionResult Edit(int id)
{
Question question = AdminRep.GetQuestionById(id);
AdminEditViewModel model = new AdminEditViewModel();
List<SubjectType> subjectypes = AdminRep.GetAllSubjectTypesById();
model.CoreValues = AdminRep.GetAllCorevaluesById();
model.QuestionText = question.QuestionText;
model.SubjectTypes = new SelectList(subjectypes, "Id", "Name",question.SubjectType.First().Id);
return View(model);
}
//
// POST: /Admin/Edit/5
[HttpPost, ActionName("Edit")]
public ActionResult EditConfirmed(int id, AdminEditViewModel model)
{
if (ModelState.IsValid)
{
Question question = AdminRep.GetQuestionById(id);
question.QuestionText = model.QuestionText;
question.SubjectType.Clear();
question.CoreValue.Clear();
foreach (var item in model.SelectedValuesOfCoreValues)
{
var CoreValueID = int.Parse(item);
var GetAllCoreValuesID = AdminRep.GetByCoreValueID(CoreValueID);
question.CoreValue.Add(GetAllCoreValuesID);
}
var SubjectTypeID = int.Parse(model.SubjecTypeName);
var getallS = AdminRep.GetBySubjectTypeID(SubjectTypeID);
question.SubjectType.Add(getallS);
AdminRep.save();
return RedirectToAction("Index");
}
return View(model);
}
и мой вид:
<div class="editor-field">
@Html.ListBoxFor(m => m.SelectedValuesOfCoreValues, new MultiSelectList(Model.CoreValues, "Id", "Name"), new { @class = "selectstyle" })
@Html.ValidationMessageFor(model => model.CoreValueName)
</div>
Заранее спасибо!