1

我有以下情况:

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

如何使用 MVC 框架干净地重定向到原始调用页面?当然,我可以通过将 HttpContext.Request.Url 值保存在我的 TempData 中来简单地传递它,但是在我的眼中(或者,呃,鼻子),那种气味。它比代码的其余部分低。

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

4

2 回答 2

2

不重定向时不要使用 TempData。来自您的编辑页面的一个 AJAX 请求,TempData 将消失。

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

于 2009-02-02T14:10:35.730 回答
1

你总是可以有一个隐藏的表单元素告诉控制器在发布表单时重定向到哪里。使用获取请求时,您可以以类似的方式使用查询字符串。它可能不是最漂亮的解决方案,但它比信任 httpreferrer 或其他可以被浏览器轻松更改(或省略)的标头安全得多。

于 2009-02-02T00:05:21.863 回答