Я пытаюсь использовать IEnumerable, чтобы он содержал несколько вариантов выбора, чтобы пользователь мог выбрать более одного значения в моем списке.
Вот так выглядит моя модель представления:
public class CreateViewModel
{
public IEnumerable<string> SelectedValues { get; set; }
public IEnumerable<CoreValue> CoreValues { get; set; }
}
Этомой GET в моем контроллере:
public ActionResult Create()
{
CreateViewModel model = new CreateViewModel();
model.CoreValues = AdminRepository.GetAllCoreValues();
return View(model);
}
Вот так выглядит мой взгляд:
@Html.ListBoxFor(m => m.SelectedValues, new MultiSelectList(Model.CoreValues, "Id", "Name"))
Как мне кодировать мое POST-действие, чтобы SelectedValues использовался для хранения выбранных значенийна пост?
До Ienumerable я объявил строку в CoreValueName в моем ViewModel, и я сделал что-то подобное в своем действии POST, которое отлично работало, но теперь я изменил его на Ienumerable, и я не уверен, как кодироватьпоэтому мои выбранные значения будут использоваться для хранения выбранных значений в моем сообщении.
Question question = new Question();
var CoreValueID = int.parse(model.CoreValueName);
var GetAllCoreValuesID = AdminRep.GetByCoreValueID(CoreValueID);
question.CoreValue.Add(GetAllCoreValuesID);
AdminRepository.AddQuestion(question);
AdminRepository.save();
Эта версия моего действия POST прекрасно работает из-за модели. SubjectType объявлен как строка в моей Viewmodel:
[HttpPost]
public ActionResult Create(AdminCreateViewModel model)
{
Question question = new Question();
var SubjectTypeID = int.Parse(model.SubjecTypeName);
var GetAllSubjecTypesID = AdminRep.GetBySubjectTypeID(SubjectTypeID);
question.SubjectType.Add(GetAllSubjecTypesID);
AdminRep.AddQuestion(question);
AdminRep.save();
}
Эта версия моего действия Post не работает, так как Model.Selectedvalues
объявлена как бесчисленная строка в моей ViewModel.Я попытался int.parse мой model.SelectedValues
, но это не работает с Ienumerable.И GetByCoreValueID
метод принимает в качестве аргумента int, поэтому я понятия не имею, как это сделать.Нужен ли foreach?
[HttpPost]
public ActionResult Create(AdminCreateViewModel model)
{
Question question = new Question();
var CoreValueID = model.SelectedValues;
var GetAllCoreValuesID = AdminRep.GetByCoreValueID(CoreValueID); //
question.CoreValue.Add(GetAllCoreValuesID);
AdminRep.AddQuestion(question);
AdminRep.save();
Заранее спасибо!