每次Controller的返回值都是null

发布于 2025-01-13 02:51:01 字数 906 浏览 0 评论 0原文

每次控制器接收空值。我该如何解决这个问题?

网址:http://localhost:45801/Account/Login?ReturnUrl=%2Forder%2Fplaceorder

代码:

    [HttpPost]
    public async Task<IActionResult>Login(UserLoginVM userLoginVM,string ReturnUrl)
    {
        if (ModelState.IsValid)
        {
            var result = await signInManager.PasswordSignInAsync
                (userLoginVM.LoginId, userLoginVM.Password, userLoginVM.RememberMe, false);

            if(result.Succeeded)
            {
                if(!string.IsNullOrEmpty(ReturnUrl))
                {
                    return RedirectToAction(ReturnUrl);
                }
                else
                {
                   return RedirectToAction("Index", "Home");
                }    
            }
            ModelState.AddModelError("","Invalid username and password");
        }
        return View(userLoginVM);
    }

Receiving Null value every time to Controller. How can I solve this?

Url: http://localhost:45801/Account/Login?ReturnUrl=%2Forder%2Fplaceorder

Code:

    [HttpPost]
    public async Task<IActionResult>Login(UserLoginVM userLoginVM,string ReturnUrl)
    {
        if (ModelState.IsValid)
        {
            var result = await signInManager.PasswordSignInAsync
                (userLoginVM.LoginId, userLoginVM.Password, userLoginVM.RememberMe, false);

            if(result.Succeeded)
            {
                if(!string.IsNullOrEmpty(ReturnUrl))
                {
                    return RedirectToAction(ReturnUrl);
                }
                else
                {
                   return RedirectToAction("Index", "Home");
                }    
            }
            ModelState.AddModelError("","Invalid username and password");
        }
        return View(userLoginVM);
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

邮友 2025-01-20 02:51:01

您需要在 UserLoginVM 之前添加 [FromBody] ,在 string 之前添加 [FromQuery] ,因此您的操作方法符号应该像这样:

public async Task<IActionResult>Login([FromBody] UserLoginVM userLoginVM,[FromQuery] string ReturnUrl)

You need to add [FromBody] before UserLoginVM and [FromQuery] before string , so your action method sign should be like this :

public async Task<IActionResult>Login([FromBody] UserLoginVM userLoginVM,[FromQuery] string ReturnUrl)
不知所踪 2025-01-20 02:51:01

您应该向参数添加 [FromQuery][FromBody] 属性。

[FromBody] 属性添加到参数中,强制 Web API 从请求正文中读取。

[FromQuery] 属性添加到参数中,强制 Web API 从查询字符串中获取值。

[HttpPost]
public async Task<IActionResult>Login([FromBody] UserLoginVM userLoginVM,[FromQuery] string ReturnUrl)
{
...
}

You should add [FromQuery] or [FromBody] attribute to the parameters.

Adding [FromBody] attribute to the parameter, force Web API to read from the request body.

Adding [FromQuery] attribute to the parameter, force Web API to gets values from the query string.

[HttpPost]
public async Task<IActionResult>Login([FromBody] UserLoginVM userLoginVM,[FromQuery] string ReturnUrl)
{
...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文