看起来似乎很简单,但事实并非如此 - 主要是由于View不可能知道你通过Model和Controller的方式。无论如何,这是一个需要解决方案的问题:如何为指向登录表单的链接指定返回网址?
我有一个登录链接,需要用户输入用户名和密码。当用户点击“提交”时,我想重定向到他正在查看的页面。最简单的方法似乎是将查询字符串指定给当前页面的URL(...?returnUrl=...
),其他所有内容都已经构建好。
但是在渲染链接时,我从哪里可以找到这个URL?我自然不能使用RedirectToActionResult,因为我不想实际传输用户 - 只在链接中呈现URL。如何?
编辑:
我现在已经开始在这个问题上的赏金,因此,我认为适当的澄清我的需求也是如此。
我在我的Shared文件夹中有一个名为Login.ascx的UserControl。其中,我将一个ActionLink呈现给登录表单,并将其包含在我的主页面的页脚中。我想要完成的是以下内容:
当ActionLink被渲染时,查询字符串returnUrl
附加了到目前正在渲染的视图的路径。如果这样做了,用户将被带回到他/她在成功登录后查看的页面中,该页面已经构建到ASP.NET MVC框架中。
之前的答案还没有足够的原因主要是他们没有提供一种方法来建立路径url到当前视图。我知道如何附加一个查询字符串,但我不知道如何找出该字符串的内容。
为了将答案标记为的答案,我想要一个方法来重新构建到当前显示的视图的路径,从masterpage中的usercontrol。
感谢您的回复!我已经得到了这么多 - 这是从我的路线构建returnUrl,我不知道该怎么做。该链接位于我的母版页上,因此对每个页面上的链接进行硬编码不是一种选择。 – 2009-02-03 08:06:20
另外,ASP中的标准授权会将?returnURL添加到任何位于受保护区域中的请求(即具有带允许/拒绝规则的web.config文件)。 – 2009-02-13 15:01:36