[英]MVC Html.DropDownListFor returns complex type with null values
[英]Saving enum type into database returns null mvc
當我嘗試將枚舉類型從dropdownList保存到數據庫中時,首先使用代碼將保存的值為null。 有人能幫助我嗎?
我的控制器:
public ActionResult Index()
{
return View(db.Users.ToList());
}
public ActionResult Create()
{
User model = new User();
IEnumerable<Proov.Models.User.UserType> userTypes = Enum
.GetValues(typeof(Proov.Models.User.UserType))
.Cast<Proov.Models.User.UserType>();
model.TypeList = from user in userTypes
select new SelectListItem
{
Text = user.ToString(),
Value = ((int)user).ToString()
};
return View(model);
}
[HttpPost]
public ActionResult Create(User user)
{
if (ModelState.IsValid)
{
db.Users.Add(user);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}
視圖
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<label>Set a type for your user :</label><br />
@Html.DropDownListFor(model=>model.UserId, Model.TypeList)
<p>
<input type="submit" value="Create" />
</p>
}
您的查看代碼不正確。 您正在將下拉列表分配給UserId,而不是各自的用戶類型屬性。 例如:
@Html.DropDownListFor(model=>model.UserTypeId, Model.TypeList)
<p>
<input type="submit" value="Create" />
</p>
如果您使用ASP.NET MVC 5.1或更高版本,則可以使用:
@Html.EnumDropDownListFor(model => model.YOURENUM)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.