大佬教程收集整理的这篇文章主要介绍了asp.net-mvc-4 – 我应该如何使用ReturnUrl = ViewBag.ReturnUrl在MVC 4,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我陷入了AccountController,我只是不能计算出我该如何使用这种方法:
private ActionResult RedirectToLocal(String returnUrl) { if (Url.IsLocalUrl(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction("Index","Home"); } }
从我的理解,整个想法是重定向到您决定登录的位置(完全是我想要完成的)。我看看它如何在视图中使用:
@using (Html.beginForm(new { ReturnUrl = ViewBag.ReturnUrl }))
寻找一个地方实际上ViewBag.ReturnUrl设置了一些值,我只有这里方法:
[AllowAnonymous] public ActionResult Login(String returnUrl) { ViewBag.ReturnUrl = returnUrl; return View(); }
并且我很困惑关于我应该如何获得位置/ url。我设置了一些断点,我从来没有见过returnUrl是不同于null的东西,在这种情况下看起来很合乎逻辑,因为它不会在任何地方获得值(除非我当然错过了)。
所以我真的不知道如何这项工作。我发布以上只是为了表明我试图做我的家庭作业,我尽可能多地调查,但我没有找到一个答案,所以我问这里。你能提供解释/例子如何这实际工作吗?
[AllowAnonymous] public ActionResult Login(String returnUrl) { ViewBag.ReturnUrl = returnUrl; return View(); }
然后,视图将此值存储在视图中此行代码所示的表单中。
@using (Html.beginForm(new { ReturnUrl = ViewBag.ReturnUrl }))
存储在视图中的原因是,当用户在输入用户名和密码后进行提交时,处理回发的控制器操作将可以访问此值。
[httpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(LoginModel model,String returnUrl) { if (ModelState.IsValid && WebSecurity.Login(model.UserName,model.password,persistCookie: model.RememberME)) { return RedirectToLocal(returnUrl); } // If we got this far,something failed,redisplay form ModelState.AddModelError("","The user name or password provided is incorrect."); return View(model); }
如果模型状态是有效的,并且它们通过调用WebSecurity.Login方法进行身份验证,那么它将调用方法RedirectToLocal,并返回来自View的returnUrl值,该值来自创建视图的登录操作。
如果用户没有重定向到登录页面,那么returnUrl值将为null,就像在用户点击默认布局中页面顶部的登录链接时一样。在这种情况下,用户将在成功登录后重定向到主页。 returnUrl的整体目的是自动将用户发送回他们在验证/授权之前尝试访问的页面。
以上是大佬教程为你收集整理的asp.net-mvc-4 – 我应该如何使用ReturnUrl = ViewBag.ReturnUrl在MVC 4全部内容,希望文章能够帮你解决asp.net-mvc-4 – 我应该如何使用ReturnUrl = ViewBag.ReturnUrl在MVC 4所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。