我的主页有一个产品选项列表,每个选项在注册时为用户提供不同的帐户级别。每个选项都显示一个“注册”按钮,将用户带到/Identity/Account/Register页面进行注册。
我需要向注册页面传达用户选择的选项。
我不能使用 Sessions,因为它显然被拿走了
我不能使用 Cookies 因为它显然已经被拿走了
当我提交表单时,ViewData 值不会保留
当我提交表单时,查询字符串值不会保留
当我提交表单时,全局变量值不会保留
最初加载页面时,我无法设置视图模型的属性(NullReferenceException)
当注册页面加载时,该值就在那里,但是当我提交表单时,它就消失了。
我不知所措。我打算通过什么机制来获得这些必需的信息?
在大多数情况下,我的代码几乎只是标准的样板文件:
[AllowAnonymous]
public class RegisterModel : PageModel
{
private readonly SignInManager<ApplicationUser> _signInManager;
private readonly UserManager<ApplicationUser> _userManager;
private readonly ILogger<RegisterModel> _logger;
private readonly IEmailSender _emailSender;
public RegisterModel(
UserManager<ApplicationUser> userManager,
SignInManager<ApplicationUser> signInManager,
ILogger<RegisterModel> logger,
IEmailSender emailSender)
{
_userManager = userManager;
_signInManager = signInManager ?? throw new ArgumentNullException(nameof(signInManager));
_logger = logger;
_emailSender = emailSender;
}
[BindProperty]
public InputModel Input { get; set; }
[BindProperty]
public int AccountLevel { get; set; }
public string ReturnUrl { get; set; }
public void OnGet(string returnUrl = null, int acclevel = 1)
{
AccountLevel = acclevel;
ReturnUrl = returnUrl;
}
public async Task<IActionResult> OnPostAsync(string returnUrl = null, int acclevel = 0)
{
returnUrl = returnUrl ?? Url.Content("~/");
if (ModelState.IsValid)
{
if (acclevel == 0) throw new ArgumentException(nameof(acclevel));
Input.LicenseCount = acclevel * 10;
var user = new ApplicationUser { UserName = Input.Email, Email = Input.Email, Name = Input.FirstName, Surname = Input.Surname, PhoneNumber = Input.PhoneNumber, SaIdNumber = Input.IdNumber, LicensesCount = Input.LicenseCount };
斯蒂芬大帝
MM们
HUH函数
随时随地看视频慕课网APP
相关分类