我使用的是ASP.NET Core 5 MVC Identity。我想自定义注册并从另一个表中添加一个选择列表,用户可以决定是否选择一个选项。所以我遵循这个答案ASP.NET核心标识模型自定义选择列表
但我解决了一个问题。我也这么做了。
用户模型
public class ApplicationUser : IdentityUser
[ForeignKey("GameID")]
public int? GameID { get; set; }
游戏模型
public int ID { get; set; }
public string GameName { get; set; }
public virtual ICollection<ApplicationUser> ApplicationUser { get; set; }
Register.cshtml.cs
private readonly ApplicationDBContext _context
public IEnumerable<SelectListItem> GameList { get; set; }
RegisterModel{}()part
ApplicationDBContext context
_context = context;
InputModel
public int? GameID { get; set; }
OnGetAsync
GameList = availableLevels.Select(x => new SelectListItem() { Text = x.GameName, Value = x.ID.ToString() }).ToList();
OnPostAsync
GameID = _context.Games.Where(x => x.ID == Input.GameID)
我没有发布东西的经验,而且我不擅长编码。希望它有意义
试试这样的东西在您的寄存器中。cshtml
in OnGetAsync
GameList = _context.model name in your DBcontext.Select(x => new SelectListItem { Text = x.yourgames???.ToString(), Value = x.ID.ToString() }).ToList();
在你的OnPostAsync上保持简单的
GameID = Input.GameID
在剃刀中删除该链接中的选择行,并将其更改为
<select asp-for="Input.GameID" asp-items="Model.GameList" class="form-control">
我不知道链接上的人是怎么做的,但在链接和帖子的背景下,我认为这是关于注册形式的选择。