有人可以解释为什么带有个人用户识别的默认Asp.Net Web应用程序模板在管理控制器中出现错误吗?
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> SendVerificationEmail(IndexViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
var user = await _userManager.GetUserAsync(User);
if (user == null)
{
throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
}
var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
var email = user.Email;
await _emailSender.SendEmailConfirmationAsync(email, callbackUrl);
StatusMessage = "Verification email sent. Please check your email.";
return RedirectToAction(nameof(Index));
}
在此代码行中;
return View(model);
视图为红色,因为没有SendVerificationEmail视图。这是正常的吗?这可以解决吗?
我可以指定一个路由到
的视图 if (!ModelState.IsValid)
{
return View(nameof(Index),model);
}
但是Asp.Net团队真的想从这里开始这么做吗?
答案 0 :(得分:2)
看来,我已经向一些人表示同意,这可能是一个错误。 不知道如何报告,但鉴于模型是一个IndexViewModel,我通过将返回结果路由到索引视图来修复它。
if (!ModelState.IsValid)
{
return View(nameof(Index),model);
}
不确定这是否是Asp.Net默认应用程序团队对此进行重新路由的意义,但这是我正在使用的修复程序(kludge)。任何更好的解决方案,请发表评论。