繁体   English   中英

CS0029 C# 无法将类型隐式转换为“int?” ASP.NET CORE 5 MVC 标识

[英]CS0029 C# Cannot implicitly convert type to 'int?' ASP.NET CORE 5 MVC Identity

我正在使用 ASP.NET Core 5 MVC Identity。 我想自定义注册并从另一个表中添加一个选择列表,该用户可以决定是否选择一个选项。 所以我正在关注这个ASP.NET Core Identity Model Customization Select List的答案

但我反驳了一个问题。 我做的差不多。

用户 Model

public class ApplicationUser : IdentityUser

        [ForeignKey("GameID")]
        public int? GameID { get; set; }

游戏 model

        public int ID { get; set; }
        public string GameName { get; set; }
        public virtual ICollection<ApplicationUser> ApplicationUser { get; set; }

注册.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)

我没有发布东西的经验,而且我是编码的菜鸟。 希望有意义

在你的 register.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

在 razor 中,从该链接中删除 select 行并将其更改为

<select asp-for="Input.GameID" asp-items="Model.GameList" class="form-control">

我不知道链接上的人是如何做到的,但是在该链接的上下文中,帖子是关于我相信的注册表中的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM