簡體   English   中英

將枚舉類型保存到數據庫中將返回null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM