【问题标题】:Getting return value of null every time to Controller每次向Controller获取null的返回值
【发布时间】:2022-03-13 04:29:29
【问题描述】:

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

网址: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);
    }
  • 尝试在方法参数中添加[FromQuery]string ReturnUrl

标签: c# asp.net asp.net-core query-string


【解决方案1】:

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

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

【讨论】:

  • 没有穆斯塔法,它不工作,
  • @BOMMANAMAINA SAIRAM 您可以创建一个包含 userLoginVM 和 ReturnUrl 的对象并将其放入参数中,然后使用 [FromBody] 属性
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多