c# - 从下拉列表中选择值后出现空异常,值不能为空
问题描述
我在我的 registerViewModel 类中添加了更多字段,其中之一是通过迁移收集的 Membershiptypes 然后我还修改了我的 Accountcontroller 和 myregister.cshtml
以便我可以有一个下拉列表。因此,当我尝试在下拉列表中选择我收到的项目null exception
并且应用程序中断时,它不再创建用户。
这是我的注册视图模型。
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>
当我注册用户时,它应该转到数据库,但它没有初始化结果变量中的成员资格类型,因此它会抛出一个值不能为空的异常。
解决方案
推荐阅读
- java - 未选中时如何在 MacOS 中更改 Java JComboBox 的背景颜色
- javascript - 如何处理默认页面中的相对href
- angular - 仅加载一次 Angular 组件
- c# - 重构所有代码文件以删除类型限定符
- node.js - 公共模块在路由内的代码之前执行?
- python - 如何使用 python 在日期之间访问 azure Dev Ops 数据,例如 Changeset?
- ruby-on-rails - 在 Rails 6 中 Webpacker 在 image_pack_tag 的帮助下使用(添加)图像到 html
- rust - 一个 Rust 函数,用于在压缩文件的行上返回一个迭代器
- android - android:textSize 在 MotionLayout 中的变化
- php - 如何在 php 中的 Google adwords api Traffic Estimator Service 中设置估计的最大每日费用