Я добавил больше полей в свой класс registerViewModel, одним из которых является коллекция типов Membership через миграцию, затем я также изменил свой Accountcontroller и мой register.cshtml
, чтобы у меня был раскрывающийся список.Поэтому, когда я пытаюсь выбрать элементы в раскрывающемся списке, я получаю null exception
, и приложение перестает работать, оно больше не создает пользователя.
Это мой RegisterViewmodel.
public class RegisterViewModel{
public ICollection<MembershipType> MembershipTypes { get; set; }
[Required]
public int MembershipTypeId { get; set; }
}
это мой метод получения.
[AllowAnonymous]
public ActionResult Register()
{
using (var db = ApplicationDbContext.Create())
{
RegisterViewModel newUser = new RegisterViewModel
{
MembershipTypes = db.MembershipTypes.ToList(),
BirthDate = DateTime.Now
};
return View(newUser);
}
}
Это мой метод публикации.
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
UserName = model.Email,
Email = model.Email,
BirthDate = model.BirthDate,
FirstName = model.FirstName,
LastName = model.LastName,
Phone = model.Phone,
MembershipTypeId = model.MembershipTypeId,
Disable = false
};
var result = await UserManager.CreateAsync(user, model.Password);
}
И мой RegisterView похож на это.
<div class="form-group">
@Html.LabelFor(m => m.MembershipTypeId, "MembershipTypeId", htmlAttributes: new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.DropDownListFor(m => m.MembershipTypeId, new SelectList(Model.MembershipTypes, "Id", "Name"),"Select List", new { @class = "form-control" })
</div>
</div>
Когда я регистрирую пользователя, он должен перейти в базу данных, но он не инициализирует membersTypes в переменной результата, следовательно, он выдает исключение, что значение не может быть нулевым.