1
내 프로젝트에서 먼저 MVC3 EF 모델을 사용하고 있습니다.MVC : 사용자가 편집 페이지에있을 때 목록 상자에서 선택된 값
사용자가 질문을 만들면 ListBox에서 여러 CoreValues를 선택할 수 있습니다. 사용자가 편집 페이지로 이동하여 질문에 대한 CoreValues를 변경하면 목록 상자에 이미 그 corevalues가 어떻게 선택되었는지에 대한 아이디어가 이미 선택되어 있습니다.
이 내 뷰 모델입니다 :
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>
감사합니다!
http://stackoverflow.com/questions/3194143/challenges-with-selecting-values-in-listboxfor –