我无法使用ASP在HttpPost上获得ReturnUrl.NET核心6 MVC.

POST方法添加断点时,returnurl始终为空.但是有.NET 5,它与相同的代码设置一起工作,除了.NET 6中,我需要使returnurl参数为空,这样我就不会出现错误"returnurl字段是必需的".

这是我正在使用的代码-任何帮助都将不胜感激.

谢谢

型号:

namespace IdentityManagerDotNet6.Models
{
    public class LoginViewModel
    {
        [Required]
        [EmailAddress]
        public string Email { get; set; } = string.Empty;

        [Required]
        [DataType(DataType.Password)]
        public string Password { get; set; } = string.Empty;

        [Display(Name = "Remember me?")]
        public bool RememberMe { get; set; }
    }
}

控制器

[HttpGet]
public IActionResult Login(string? returnurl)
{
    ViewData["ReturnUrl"] = returnurl;
    return View();
}

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginViewModel loginViewModel, string? returnurl)
{
    ViewData["ReturnUrl"] = returnurl;
    returnurl = returnurl ?? Url.Content("~/");

    if (ModelState.IsValid)
    {
        var result = await _signInManager.PasswordSignInAsync(loginViewModel.Email, loginViewModel.Password, loginViewModel.RememberMe, lockoutOnFailure: true);

        if (result.Succeeded)
        {
            return LocalRedirect(returnurl);
        }

        if (result.IsLockedOut)
        {
            return View("Lockout");
        }
        else
        {
            ModelState.AddModelError(string.Empty, "Invalid login attempt.");
            return View(loginViewModel);
        }
    }

    return View(loginViewModel);
}

视图:

@model LoginViewModel

<h1 class="text-info">Log in</h1>
<div class="row">
    <div class="col-md-8">
        <form asp-controller="Account" asp-action="Login" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" role="form">
            <h4>Use a local account to log in</h4>
            <hr />
            <div asp-validation-summary="All" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="Email" class="col-md-2"></label>
                <div class="col-md-10">
                    <input asp-for="Email" class="form-control" />
                    <span asp-validation-for="Email" class="text-danger"></span>
                </div>
            </div>
            <div class="form-group mt-3">
                <label asp-for="Password" class="col-md-2"></label>
                <div class="col-md-10">
                    <input asp-for="Password" class="form-control" />
                    <span asp-validation-for="Password" class="text-danger"></span>
                </div>
            </div>
            <div class="form-check mt-3">
                <input class="form-check-input" asp-for="RememberMe" type="checkbox" value="" id="flexCheckChecked">
                <label class="form-check-label" asp-for="RememberMe" for="flexCheckChecked">
                    Remember me?
                </label>
            </div>
            <div class="form-group">
                <div class=" col-1 my-3">
                    <button type="submit" asp-controller="Account" asp-action="Login" class="btn btn-success form-control">Login</button>
                </div>
            </div>
            <p>
                <a asp-action="Register">Register as a new user?</a>
            </p>
            <p>
                <a asp-action="ForgotPassword">Forgot your passord?</a>
            </p>
        </form>
    </div>
</div>

推荐答案

100

我已经查过你的密码了.它什么都没有

100

我已经成功地复制了您的问题,您可以在下面看到:

enter image description here

100

如果你再次调查你的代码,你会发现你

100

   <form asp-controller="Login" asp-action="Login" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" role="form">

100

 <button type="submit" asp-controller="Login" asp-action="Login" class="btn btn-success form-control">Login</button>

100

最简单的解决方案就是修改你的submit button code,如下所示,这将解决你的问题:

            <div class="form-group">
                <div class=" col-1 my-3">
                    <button type="submit" class="btn btn-success form-control">Login</button>
                </div>
            </div>

100

enter image description here

希望它能彻底解决你的问题.

Csharp相关问答推荐

在2D数组中绘制椭圆

我们应该如何在IHostedService中使用按请求的GbContent实例?

如何使用PDFSharp将文本添加到现有PDF

为什么xslWriter不总是按照xslWriterSet中指定的格式格式化该文档?

ASP.NET MVC购物车数量更新并从购物车中删除项目

C#中使用BouncyCastle计算CMac

使用LayoutKind在C#中嵌套 struct .显式

如何注册实现同一接口的多个服务并注入到控制器构造函数中

Polly使用泛型重试和重试包装函数

如何在Windows 11任务调度程序中每1分钟重复一次任务?

Quartz调度程序不调用作业(job)类

当前代码Cosmos DB 3.37.1:PartitionKey key key mismatch exception

System.Text.Json .NET 8多形态语法化

Savagger使用Fastendpoint更改用户界面参数

在C#中,是否有与变量DISARD对应的C++类似功能?

具有类型识别的泛型方法

如何在.NET Maui中将事件与MVVM一起使用?

在C#ASP.NET内核中使用INT AS-1进行控制器场景的单元测试

为什么我在使用有效令牌的情况下仍未获授权?

数据库操作预计影响1行,但实际影响0行; after _dbContext.SaveChanges();