在下面的示例中,我尝试将Asp.Net标识的“ aspnetusers”表“ Id”列中的ID保存到我的“ Application”表中。当我提交申请时,“全名”的下拉列表会填充,但不会保存到我的“应用”表中。提交应用程序后,我需要将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
为贷款人员创建的子类或使用角色来分配该状态来计划一些灵活性。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句