ActionResult返回调用它的页面

Cop*_*ill 11 asp.net-mvc

我有一个ActionLink,它调用我的公共ActionResult,我希望它返回到它被调用的页面,但是如何?

Chu*_*uck 27

你可以使用几个技巧.

最简单的是......

return Redirect(HttpContext.Request.UrlReferrer.AbsoluteUri);
Run Code Online (Sandbox Code Playgroud)

AbsoluteUri可能无法为您提供所需的确切路径,但UrlReferrer应该具有您正在寻找的信息.Redirect返回ActionResult的子类,因此它是一个有效的返回值.

另一个想法是将重定向位置基于存储的值.当您要在重定向之前发出多个请求时,这非常有用,例如,当您验证表单并在第一个响应上显示验证问题时.另一种情况是推荐人不是本地网站.在任何一种情况下,您的推荐人都不是您想要的,您需要从其他地方检索正确的位置.

具体实现包括在表单上使用隐藏的输入字段,会话状态,从路由数据中提取描述符值,或者甚至只是像HttpContext.Request.ApplicationPath这样的更常量的值.

祝好运.