C# CS0029 C无法将类型隐式转换为“int?”ASP.NET CORE 5 MVC标识
我正在使用ASP.NET Core 5 MVC标识。我想定制注册并从另一个表中添加一个选择列表,用户可以决定是否选择一个选项。 因此,我遵循这个问题的答案 但我反驳了一个问题。我也这么做了 用户模型C# CS0029 C无法将类型隐式转换为“int?”ASP.NET CORE 5 MVC标识,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我正在使用ASP.NET Core 5 MVC标识。我想定制注册并从另一个表中添加一个选择列表,用户可以决定是否选择一个选项。 因此,我遵循这个问题的答案 但我反驳了一个问题。我也这么做了 用户模型 public class ApplicationUser : IdentityUser [ForeignKey("GameID")] public int? GameID { get; set; } 博弈模型 public i
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中
in OnGetAsync
GameList = _context.model name in your DBcontext.Select(x => new SelectListItem { Text = x.yourgames???.ToString(), Value = x.ID.ToString() }).ToList();
在你的OnPostSync上,保持简单
GameID = Input.GameID
在razor中,从该链接中删除该选择行并将其更改为
<select asp-for="Input.GameID" asp-items="Model.GameList" class="form-control">
我不知道链接上的人是如何做到这一点的,但在链接和帖子的上下文中,我相信是关于注册表单中的选择。为什么你的int可以为空?int之后?还有完整的堆栈跟踪吗?这将告诉您是哪一行导致了错误这没有意义:GameID=\u context.Games.Wherex=>x.ID==Input.GameID您试图将游戏列表存储为单个int?价值游戏列表不仅仅是一个整数,它包含的数据要多得多。这就是错误告诉您的,您的游戏对象集合无法转换为int?。你想做什么?你只是想得到一个游戏id吗?如果是这样,GameID=\u context.Games.Wherex=>x.ID==Input.GameID这就是问题所在。此代码与您发布链接的问题中的代码完全不同;该代码不是异步的,没有InputModel,没有使用可为null的int?;总的来说,这段代码对于理解您的问题毫无用处。
GameID = Input.GameID
<select asp-for="Input.GameID" asp-items="Model.GameList" class="form-control">