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 – AsyncFileUpload控件
- ASP.NET长期运行的Ajax请求.页面响应
- asp.net – 问题映射HttpHandler – > HTTP错误404未找到
- asp.net-mvc-4 – 如何在mvc4中将Json字符串发送到Controll
- 如何获取asp.net Windows身份验证中的用户详细信息
- 扩展GridView实现的一个自定义无刷新分页,排序,支持多种数
- asp.net – 总是显示FooterTemplate,甚至没有数据
- 在ASP.NET 2.0中的特定时间清除缓存
- BreezeJS vs JayData for ASP开发ASP.NET MVC
- asp.net – 如何通过代码显示无
- asp.net – 如何从进程中慢慢迁移到将Redis用作会
- asp.net-mvc-3 – 将数组传递给RouteValues,并将
- asp.net-mvc – Autofac,MVC(带ActionFilters),W
- asp.net-mvc – 如何gzip内容在asp.net MVC?
- asp.net-mvc-4 – MVC4中的Bootstrap和font-awes
- ASP.NET Core 企业级开发架构简介及汇总
- Task.Factory.StartNew在ASP.Net MVC中有帮助或有
- 多线程异步编程示例和实践-Thread和ThreadPool
- asp.net-mvc – datetime.parse用西班牙语进行游
- ASP.NET:如何更快地加载页面