Я пытаюсь использовать IEnumerable, поэтому он содержит несколько вариантов выбора, поэтому пользователь может выбрать более одного значения в моем списке.выбор и добавление нескольких значений с использованием IEnumerable в MVC
Это как мой ViewModel выглядит следующим образом:
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 работает отлично beacuse model.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();
}
Эта версия моего сообщение действия не работает beacuse Model.Selectedvalues
объявлен как Ienumerable string в моей 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();
Заранее благодарен!
Ах да у меня есть мои ViewModel в качестве параметра в моем действии POST. Но его «model.SelectedValues будет игнорировать выбранные значения от пользователя здесь». У меня проблемы с кодом после его Ienumerable:/ – Obsivus
@RammtinAvar, какие у вас проблемы? Чего вы пытаетесь достичь? Я думал, вы спрашиваете, как вернуть выбранные значения в действие POST. –
То, что я пытаюсь достичь, - это то, что пользователь выбрал несколько значений из моего списка. Я хочу добавить эти значения в свою базу данных, прежде чем они смогут просто добавить одно значение, но теперь должно быть возможно добавить несколько, я объявил Ienumerable selectedvalues в моей модели viewmodel, которая заполняется моим действием GET всеми моими статическими ключевыми значениями в моей базе данных. Я не знаю, как это сделать в моем действии POST. – Obsivus