我有一个MVC5应用程序,其中我要求管理员将供应商分配给他们的ASP.NET用户ID登录详细信息。这是因为供应商可以注册到我的应用程序,该应用程序将包含与已经设置的ID不同的ID。我需要一个管理员来获取他们的供应商ID并将其分配给他们的ASP.Net用户ID。
我将供应商和用户创建到下拉列表中,这一切都很好。我现在需要更新供应商ID以匹配ASP.Net用户ID
我所拥有的如下 控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AssignSupplier(string supplierName, string UserName )
{
ApplicationUser user = db.Users.Where(u => u.UserName.Equals(UserName, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
UserManager<ApplicationUser> _userManager = new UserManager<ApplicationUser>(
new UserStore<ApplicationUser>(new ApplicationDbContext()));
// this.UserManager.ad
var supp = db.Suppliers.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem { Value = rr.Name.ToString(), Text = rr.Name }).ToList();
ViewBag.Suppliers = supp;
var users = db.Users.OrderBy(r => r.UserName).ToList().Select(rr => new SelectListItem { Value = rr.UserName.ToString(), Text = rr.UserName }).ToList();
ViewBag.Users = users;
return View("ManageUserRoles");
}
我不确定如何将AspNet用户ID保存回供应商表并覆盖当前ID,这可以完成。我使用了一个非常类似的解决方案,通过关注http://www.dotnetfunda.com/articles/show/2898/working-with-roles-in-aspnet-identity-for-mvc
将用户分配给角色我想知道是否有人可以提供帮助或建议
非常感谢 标记
答案 0 :(得分:2)
您是否要在Supplier
和User
之间创建一对多关系?
您的User
需要Supplier
:
public class ApplicationUser
{
//...
public virtual Supplier Supplier {get;set;}
//...
}
,您的Supplier
需要User
public class Supplier
{
//...
public virtual List<ApplicationUser> Users {get;set;}
//...
}
然后在您的控制器中将供应商分配给用户:
public ActionResult AssignSupplier(string supplierName, string UserName )
{
ApplicationUser user = db.Users.FirstOrDefault(u => u.UserName == UserName);
Supplier supplier = db.Suppliers.FirstOrDefault(x => x.Name == supplierName);
// Assign supplier to user
user.Supplier = supplier;
// Save
db.SaveChanges();
// ...
}