在下面的例子中,我试图将Id从Asp.Net Identity,"aspnetusers"表"Id"列保存到我的"Application"表中.填写"fullname"的下拉列表,但在我提交申请时不会保存到我的"申请"表.我需要在提交应用程序后将aspnetusers表中的"Id"保存到我的"应用程序"表中.非常感谢帮助!
控制器:
private ApplicationDbContext db = new ApplicationDbContext();
public ActionResult Index()
{
    ViewBag.FullNameList = new SelectList(db.Users,"Id","FullName");
    return View();
}
// POST: Applications/Create
[ValidateAntiForgeryToken]
public ActionResult Index([Bind(Include = "Id,FullName, FirstName,MiddleInitial,LastName,")]   Application application)
{
    if (ModelState.IsValid)
    {
        ViewBag.FullNameList = new SelectList(db.Users, "Id", "FullName", application.ApplicationUser);
        db.Applications.Add(application);
        db.SaveChanges();
        return RedirectToAction("Thanks");
    }
}
视图:
<p>
      @Html.DropDownListFor(m => m.FullName, (SelectList)ViewBag.FullNameList, "Select Loan Officer")
</p>
模型:
public class Application
{
    public int ApplicationId { get; set; }
    [Required]
    [DisplayName("First Name")]
    public string FirstName { get; set; }
    [DisplayName("Middle Initial")]
    public string MiddleInitial { get; set; }
    [Required]
    [DisplayName("Last Name")]
    public string LastName { get; set; }
    public virtual string FullName {get; set; }
    public virtual ApplicationUser ApplicationUser { get; set; }
}   
很多事情都错了:
Application,没有FullName属性.Bind属性也不包含它.ViewBag会员持有您的选择列表,其名称与您要发布的字段的名称相同.把它改成类似的东西ViewBag.FullNameChoices.Id"贷款官"用户,您无法使用它.如果你实际上有一个外键属性,你可以直接发布到那个,但你只是依靠EF创建一个你无法访问的隐式属性.在您的帖子操作中,您需要使用Id数据库中的用户查找用户,然后将您的ApplicationUser属性设置为该用户.ApplicationUser并不直观.你应该把它改成类似的东西LoanOfficer.此外,看起来您假设所有用户都是"贷款人员",您应该通过ApplicationUser为贷款人员创建子类或使用角色来分配该状态来规划一些灵活性.| 归档时间: | 
 | 
| 查看次数: | 771 次 | 
| 最近记录: |