默认的Asp.Net核心Web模板出错

时间:2017-11-28 12:57:46

标签: c# asp.net-core-2.0

有人可以解释为什么带有个人用户识别的默认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);

VS Inspection of red squiggly under View

视图为红色,因为没有SendVerificationEmail视图。这是正常的吗?这可以解决吗?

我可以指定一个路由到

的视图
 if (!ModelState.IsValid)
 {
     return View(nameof(Index),model);
 }

但是Asp.Net团队真的想从这里开始这么做吗?

1 个答案:

答案 0 :(得分:2)

看来,我已经向一些人表示同意,这可能是一个错误。 不知道如何报告,但鉴于模型是一个IndexViewModel,我通过将返回结果路由到索引视图来修复它。

 if (!ModelState.IsValid)
 {
     return View(nameof(Index),model);
 }

不确定这是否是Asp.Net默认应用程序团队对此进行重新路由的意义,但这是我正在使用的修复程序(kludge)。任何更好的解决方案,请发表评论。