我有一個項目模型和技能模型的模型,MVC實體框架,編輯,查看與外鍵
該項目具有一對多的關係,我有一個問題搞清楚技能
如何做編輯actionmethod的項目,
當項目目標是通過MVC實例化,技能集合爲null,在視圖中我顯示覆選框,並需要添加,並從這個集合
我想刪除我需要加載從數據庫項目,然後映射修改的字段,然後保存,這是正確的方式去了嗎?有沒有比手動做更好的方法?
在此先感謝。
我有一個項目模型和技能模型的模型,MVC實體框架,編輯,查看與外鍵
該項目具有一對多的關係,我有一個問題搞清楚技能
如何做編輯actionmethod的項目,
當項目目標是通過MVC實例化,技能集合爲null,在視圖中我顯示覆選框,並需要添加,並從這個集合
我想刪除我需要加載從數據庫項目,然後映射修改的字段,然後保存,這是正確的方式去了嗎?有沒有比手動做更好的方法?
在此先感謝。
嘗試爲您的項目創建ViewModel並使用它來填充視圖中的技能和項目。
例如
public class ProjectViewModel
{
public Project Project {get; set;}
public List<Skills> Skills { get; set;}
}
然後在你控制器
public ActionResult Edit(int id){
var model = new ProjectViewModel
{
Project = YourContext.Projects.SingleOrDefault(x=>x.ProjectId == id),
Skills = YourContext.Skills.ToList()
};
return View(model);
}
[HttpPost]
public ActionResult Edit(ProjectViewModel model){
if (ModelState.IsValid){
//now you can use skills from the ViewModel
foreach(Skill s in model.Skills){
//you should now have skill value.
我有同樣的問題,我想這樣的 我的外鍵的產品ID,你需要把它綁定包括列表 控制器;
public ActionResult EditTextProperty([Bind(Include = "Id,ProductID,Name,Description,Value,CreateDate,ModifyDate,IsHaveNectar")] PVM_TextProperty TextProperty)
{
if (ModelState.IsValid)
{
db.Entry(TextProperty).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(TextProperty);
}
,並通過隱藏屬性一樣, 觀把它從視圖。
@Html.HiddenFor(model => model.ProductID)
感謝