代码之家  ›  专栏  ›  技术社区  ›  Erik van Brakel scottrakes

发布/重定向/获取:重定向到特定路由

  •  1
  • Erik van Brakel scottrakes  · 技术社区  · 16 年前

    我有以下场景:

    我有一个编辑页面,可以从不同的页面调用。这些页面可以是当前实体的详细视图,也可以是实体的列表视图(在路由中搜索或不搜索)。

    如何使用MVC框架清晰地重定向到原始调用页?当然,通过将httpcontext.request.url值保存在tempdata中,我可以简单地传递它,但在我的眼睛(或者,呃,鼻子)中会有这种气味。它的级别比其他代码低。

    有没有一种方法可以在控制器上下文中获取上一页的RouteValues?如果我有,我可以暂时存储它并将其传递给重定向。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Craig Stuntz    16 年前

    Do not use TempData when not redirecting. 一个来自编辑页面的Ajax请求,tempdata就会消失。

    Tomas认为隐藏元素或查询字符串参数是正确的。但请确保清除提交的值。您不希望重定向网站上的任何旧网站;您需要确保重定向到的页面是网站的一部分。

        2
  •  1
  •   Tomas Aschan    16 年前

    您始终可以有一个隐藏的表单元素,告诉控制器在发布表单时重定向到哪里。当使用GET请求时,可以用类似的方式使用querystring。它可能不是最漂亮的解决方案,但它比信任httpreferr或其他容易被浏览器更改(或修改)的头要安全得多。