asp.net-mvc – 如何为登录表单的链接指定返回URL?
|
看起来很简单,但事实证明并非如此 – 主要是因为View无法知道你通过模型和控制器走哪条路.无论如何,这是一个需要解决方案的问题: 我有一个登录链接,它将用户带到表单输入用户名和密码.当用户点击“提交”时,我想重定向到他正在查看的页面.最简单的方法似乎是将当前页面的url指定为查询字符串(…?returnUrl = …),其他所有内容都已构建完成. 但是在渲染链接时,我从哪里可以找到这个网址?我自然不能使用RedirectToActionResult,因为我不想实际转移用户 – 只在链接中呈现URL.如何? 编辑: 我现在已经开始对这个问题给予赏金,因此我认为也适合澄清我的需求. 我的共享文件夹中有一个名为Login.ascx的UserControl.在其中,我将一个ActionLink呈现给登录表单,它包含在我的主页上的页脚中.我想要完成的是以下内容: 呈现ActionLink时,查询字符串returnUrl会附加到当前正在呈现的视图的路径.如果完成此操作,用户将在成功登录后使用已构建到ASP.NET MVC框架中的功能返回到他/她正在查看的页面. 之前的答案还不充分的原因主要是他们没有提供一种方法来构建当前视图的路由URL.我知道如何附加一个查询字符串,但我不知道如何找出该字符串中的内容. 为了将答案标记为答案,我想要一种方法从主页中的用户控件重新构造到当前显示的视图的路径. 解决方法解决方案是使用HttpContext.Current.Request.RawUrl,如下所示:<%= Html.ActionLink("log on","LogIn",new { controller = "User",returnUrl = HttpContext.Current.Request.RawUrl }) %>
或者使用MVC futures(Microsoft.Web.Mvc.dll)的扩展方法: <%= Html.ActionLink<AccountController>(c => c.LogOn("name","password",false,HttpContext.Current.Request.RawUrl),"login here")%>
ActionController是mvc中的默认值,但只需将returnUrl添加到您自己的. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何在使用RedirectToAction时设置协议?
- asp.net-mvc – 禁用生产中的Glimpse和glimpse.axd
- ASP.NET:如何检测身份验证超时
- asp.net – 错误:此程序集是由运行时比当前加载的运行时更
- asp.net – 如何从Web应用程序进行高级打印?
- ASP.NET C#列出哪些以及何时?
- asp.net – NLogConfigurationException – 从’System.Str
- asp.net – 为什么不能通过IIS7中的web.config删除“服务器
- asp.net – 如何在GridView中隐藏TemplateField列
- asp.net-mvc – MicrosoftMvcValidation.js VS jquery.vali
- asp.net-mvc-3 – 坚持使用asp.net mvc 3.0脚手架
- asp.net-mvc – 在我的ASP.NET MVC网站中缓存不能
- asp.net-web-api – 为ASP.NET Web API应用程序生
- asp.net – 如何导入mdb到sql server
- asp.net – 如何解决错误:当应用程序未在UserIn
- asp.net-mvc – ASP.NET身份登录
- asp.net核心 – 在ASP.NET Core的WebDeploy期间,
- asp.net-mvc – 避免“类或CssClass值未定义”AS
- asp.net-mvc – 如何使用Html.DropDownList为默认
- asp.net-mvc – T4MVC @ Url.Action(MVC.Control
