Вот как я бы с этим справился:
В вашей ViewModel замените:
public class CreateViewModel {
public string QuestionText { get; set; }
public string Sname { get; set; }
public string Cname { get; set; }
public int SubjectTypesID { get; set; }
public int CoreValuesID { get; set; }
}
В вашем HTTPGET поместите свой список в Viewbags:
public ActionResult Create()
{
CoreValueRepository Crep = new CoreValueRepository();
SubjectTypeRepository Srep = new SubjectTypeRepository();
CreateViewModel model = new CreateViewModel();
ViewBag.SubjectTypes = Srep.getall();
ViewBag.CoreValues = Crep.getall();
return View(model);
}
Чтобы использовать viewbag в вашем представлении, вы можете использовать это:
@Html.DropDownList("SubjectTypesID ", new SelectList(ViewBag.SubjectTypes as System.Collections.IEnumerable, "SID", "Sname", Model.SubjectTypesID ))
@Html.DropDownList("CoreValuesID ", new SelectList(ViewBag.CoreValues as System.Collections.IEnumerable, "CID", "Cname", Model.CoreValuesID ))
Ваш HTTPOST:
[HTTPOST]
public ActionResult Create(CreateViewModel model)
{
//Now with your model you have the Id of CoreValue and SubjectType
//You could do
if (ModelState.IsValid)
{
QuestionRep.Add(model);
return RedirectToAction("Index");
}
return View(model);
}
Надеюсь, это может помочь вам:)
Редактировать:
в моем репозитории я делаю:
public void Add(Model.Models.LabExam.Examen entity)
{
using (var context = new PDSIDataContext())
{
var exam = BindModelExamenToRepExamen(entity);
context.Examen.InsertOnSubmit(exam);
context.SubmitChanges();
}
}
Методы привязки (Repository.Examen представляет мою таблицу, репозиторий - мой проект, где у меня есть .dbml для представления моей БД):
private static Repository.Examen BindModelExamenToRepExamen(Model.Models.LabExam.Examen modelExamen)
{
return new Repository.Examen
{
ID_Examen = modelExamen.ID,
ID_Examen_Type = modelExamen.ID_Examen_Type,
Date_Prescription = modelExamen.Date_Prescription,
Realise_Le = modelExamen.Realise_Le,
Statut = modelExamen.Statut,
Fait = modelExamen.Fait,
ID_Examen_Sous_Type = modelExamen.ID_Examen_Sous_Type,
ID_Examen_Sous_Sous_Type = modelExamen.ID_Examen_Sous_Sous_Type,
ID_Patient = modelExamen.ID_Patient,
Commentaires = modelExamen.Commentaires
};
}