![](/img/trans.png)
[英]How do I get a value from a foreign key to populate a list with an associated value?
[英]How do I get Entity to populate the values of foreign key objects at the controller action?
我正在嘗試使用CodeFirst和Entity Framework在MSMVC中使用DataBinding。 我試圖將帶有外鍵的模型傳遞給視圖,編輯數據並將結果綁定回控制器操作中,然后再執行更新。
簡而言之,我如何獲得實體以在控制器中填充外鍵對象的值。
該模型非常簡單,僅包含字符串“ Text”和外鍵UserModel“ User”。 BaseModel僅包含一個Id和一個DateTime。
public class CommentModel : BaseModel
{
[Required]
[Display(Name = "Text")]
public string Text { get; set; }
public virtual UserModel User { get; set; }
}
在我的Razor視圖中,User.Id有一個隱藏字段:
@Html.HiddenFor(model => model.User.Id)
在我的控制器動作中,我有:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(CommentModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
_commentsRepository.Update(model);
return RedirectToAction("Index");
}
問題在於ModelState包含錯誤,因為僅填充了UserModel的Id屬性?
誰能告訴我我在做什么錯?
您是否通過視圖中的表單字段設置了其他屬性,還是由於其他原因而只是將用戶ID傳遞回去。
如果要在視圖中更新UserModel的其他屬性,則只要命名約定正確,即應通過模型綁定自動序列化這些屬性,即“ ID =” User.Id“或ID =” User.FirstName“ ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.