每次向控制器接收 Null 值。我該如何解決這個問題?
網址:http://localhost:45801/Account/Login?ReturnUrl=/order/placeorder
代碼:
[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);
}
uj5u.com熱心網友回復:
您需要在[FromBody]之前UserLoginVM和[FromQuery]之前 添加string,因此您的操作方法符號應該是這樣的:
public async Task<IActionResult>Login([FromBody] UserLoginVM userLoginVM,[FromQuery] string ReturnUrl)
uj5u.com熱心網友回復:
您應該為引數添加[FromQuery]或[FromBody]屬性。
向引數添加[FromBody]屬性,強制 Web API 從請求正文中讀取。
向引數添加 [FromQuery]屬性,強制 Web API 從查詢字串中獲取值。
[HttpPost]
public async Task<IActionResult>Login([FromBody] UserLoginVM userLoginVM,[FromQuery] string ReturnUrl)
{
...
}
uj5u.com熱心網友回復:
您必須在 get 方法中發送回傳 url 才能使用 ViewData 進行查看,如下所示。
[HttpGet]
public IActionResult Login(string ReturnUrl)
{
ViewData["ReturnUrl"]=ReturnUrl;
return View();
}
你的觀點應該是這樣的:
<form asp-controller="Account" asp-action="Login"
asp-route-returnurl="@ViewData["ReturnUrl"]"
method="post" >
</form>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/442056.html
上一篇:條件等于不作業時的Nlog過濾器
