0
Я хочу, чтобы направить пользователя на страницу своего профиля при их входе в систему, но returnUrl
является null
, я немного запутался о том, как returnUrl
работает, если кто-то может направить меня в правильном направлении, высоко ценитсяreturnUrl - null?
Благодаря
Войти контроллер:
#region LoginAction
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.returnUrl = returnUrl;
return View();
}
#endregion
#region LoginPost
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginUserViewModel model,string returnUrl)
{
if (ModelState.IsValid)
{
User user = await UserManager.FindAsync(model.UserName, model.Password);
ProfileUserViewModel userProfile = new ProfileUserViewModel
{
UserName = user.UserName,
FirstName = user.FirstName,
LastName = user.LastName,
Weight = user.Weight,
Goal = user.Goal,
DailyCalories = user.DailyCalories,
DailyCarbs = user.DailyCarbs,
DailyFats = user.DailyFats,
DailyProtein = user.DailyProtein
};
if (user == null)
{
ModelState.AddModelError("", "Invalid name or password");
}
else
{
ClaimsIdentity ident = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
AuthManager.SignOut();
AuthManager.SignIn(new AuthenticationProperties { IsPersistent = false }, ident);
return Redirect(returnUrl);
}
// return View("Profile", userProfile);
}
ViewBag.returnUrl = returnUrl;
return View(model);
}
private IAuthenticationManager AuthManager
{
get { return HttpContext.GetOwinContext().Authentication; }
}
private AppUserManager UserManager
{
get
{
return HttpContext.GetOwinContext().GetUserManager<AppUserManager>();
}
}
#endregion
Вид:
@model FitnessFriend.WebUI.Models.LoginUserViewModel
@{
ViewBag.Title = "Login";
}
<h2>Log In</h2>
@Html.ValidationSummary()
@using (Html.BeginForm())
{
@Html.AntiForgeryToken();
<input type="hidden" name="returnUrl" value="@ViewBag.returnUrl" />
<div class="form-group">
<label>Name</label>
@Html.TextBoxFor(x => x.UserName, new { @class = "form-control" })
</div>
<div class="form-group">
<label>Password</label>
@Html.PasswordFor(x => x.Password, new { @class = "form-control" })
</div>
<button class="btn btn-primary" type="submit">Log In</button>
}
Я перегрузил BeginForm, он говорит, что нет Логин/Войти, так что я изменил его на «Войти» «Счет», но та же проблема возникает снова ? –
Какой у вас контроллер и название действия? Первый параметр в методе BeginForm - это имя действия, а второе - имя контроллера. –
Account Controller, ActionResult: Login –