问题标签 [redirecttoaction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3965 浏览

asp.net-mvc - 在 ASP.NET MVC 中,返回 RedirectToAction 时保留 URL

我有一个动作方法,根据传递给它的内容,我想重定向到另一个控制器中的另一个动作。动作和控制器名称是在运行时确定的。

如果我返回 RedirectToAction(),它将强制重定向并更改浏览器中的 URL。我想要的是类似于 TransferToAction() 的东西,它可以将当前请求的处理转移到另一个动作,而无需进行重定向。我似乎记得在早期的预览中有这样的方法,但我似乎无法在 ASP.NET MVC 的 RC 中找到它。

你知道我会怎么做吗?

更新

我添加了以下路线:

和 PageRouter 控制器动作 RoutePage:

我必须在 RouteData 中设置控制器和操作才能呈现 Home Index 视图。否则,它将在 PageRouterController 中查找索引视图。

我仍然需要弄清楚如何创建一个控制器及其只知道它们的名称的动作。例如,我希望能够调用这样的东西:

InvokeAction() 应该做什么?我需要传递任何上下文吗?

0 投票
5 回答
47378 浏览

asp.net-mvc - 如何让过滤器重定向到另一个动作?

RedirectToAction受到保护,我们只能在操作中使用它。但是如果我想在过滤器中重定向?

0 投票
8 回答
70687 浏览

c# - MVC - 使用 RedirectToAction() 传递数据

我想获取在 MVC 用户表单中输入的数据并将其显示在不同的视图中。

该类具有以下私有变量:

以下操作接受 FormCollection 对象,对其进行验证,并将其作为列表传递给“预览”视图:

预览视图具有以下用于传递强类型对象列表的页面指令:

我希望能够使用 Model 对象来获取我的数据,但是我不能。在下一行,我得到一个error index out of bounds异常,指出索引必须是非负的并且小于集合的大小:

并且在 URL 中添加了一些奇怪的参数,因为它解析为 http://localhost:1894/Admin/Preview?Capacity=4&Count=3

所以我有两个问题:

  1. 当我调用 RedirectToAction 并将它传递给我的列表时,为什么它在视图的模型对象中无法访问?
  2. 做我想做的事情的正确方法是什么,即将字符串集合传递给视图以在那里显示?
0 投票
2 回答
442 浏览

asp.net-mvc - RedirectToAction - 但我希望它转到 http://example.com/controller/action/id?

我想将 asp.net mvc 响应移至

http://example.com/emails/list/rob@email.com

使用 RedirectToAction("list", "emails", new { id = "rob@email.com"}); 带你到http://example.com/emails/list?id=rob@email.com

我究竟做错了什么?

谢谢,

0 投票
3 回答
1507 浏览

asp.net-mvc - 将视图呈现为字符串,然后重定向导致异常

所以这就是问题所在:我正在通过将完整视图页面呈现为字符串并发送它们来构建要由我的应用程序发送的电子邮件。只要我之后不重定向到站点上的另一个 URL,这将毫无问题。每当我尝试时,我都会收到“System.Web.HttpException:发送 HTTP 标头后无法重定向”。

我相信问题出在我正在重用来自控制器操作的上下文的事实,创建电子邮件的调用来自该操作。更具体地说,来自上下文的 HttpResponse。不幸的是,我无法创建一个使用 HttpWriter 的新 HttpResponse,因为该类的构造函数无法访问,并且使用从 TextWriter 派生的任何其他类都会导致 response.Flush() 本身引发异常。

有人对此有解决方案吗?

0 投票
5 回答
25009 浏览

asp.net-mvc - 将视图数据保留在 RedirectToAction 上

在redirectToAction 之后,这不会在视图数据中保留“信息”文本。我将如何以最优雅的方式解决这个问题?

我目前的想法是将 Index controlleraction 中的内容放在 [NonAction] 中,并从 Index 操作和 CreateUser 操作中调用该方法,但我觉得必须有更好的方法。

谢谢。

0 投票
16 回答
924839 浏览

c# - 带参数的 RedirectToAction

因此,我有一个从锚点调用的动作,Site/Controller/Action/ID其中ID一个int.

稍后我需要从控制器重定向到相同的操作。

有没有聪明的方法来做到这一点?目前我正在存储临时ID数据,但是当您在返回后再次按 f5 刷新页面时,临时数据消失了,页面崩溃了。

0 投票
3 回答
4269 浏览

asp.net-mvc - 将视图呈现到 MVC 中的字符串,然后重定向 - 解决方法?

我无法将视图呈现到字符串然后重定向,尽管2 月的这个答案(我认为是 1.0 版之后)声称这是可能的。我以为我做错了什么,然后我在 7 月读了 Haack 的这个答案,声称这是不可能的。

如果有人让它工作并且可以帮助我让它工作,那就太好了(我会发布代码,错误)。但是,我现在需要解决方法。有一些,但没有什么理想的。有没有人解决这个问题,或者对我的想法有任何意见?

  1. 这是为了呈现电子邮件。虽然我肯定可以在 Web 请求之外发送电子邮件(将信息存储在数据库中并稍后获取),但电子邮件的类型很多,我不想存储模板数据(用户对象、其他一些 LINQ 对象) ) 在数据库中让它稍后呈现。我可以创建一个更简单、可序列化的 POCO 并将其保存在数据库中,但为什么呢?...我只想渲染文本!
  2. 我可以创建一个新的 RedirectToAction 对象来检查标头是否已发送(无法弄清楚如何执行此操作 - try/catch?),如果是,则构建一个带有元重定向的简单页面,一个 javascript 重定向,还有一个“点击这里”链接。
  3. 在我的控制器中,我可以记住我是否呈现了一封电子邮件,如果是,则通过显示视图手动执行 #2。
  4. 我可以在任何潜在的电子邮件呈现之前手动发送重定向标头。然后,我不使用 MVC 基础结构来重定向操作,而是调用 result.end。这似乎最简单,但确实很混乱。
  5. 还要别的吗?

编辑:我已经尝试过 Dan 的代码(与我已经尝试过的一月/二月的代码非常相似),但我仍然遇到同样的错误。我能看到的唯一实质性区别是他的示例使用了视图,而我使用了局部视图。稍后我将尝试使用视图对此进行测试。

这是我所拥有的:

控制器

发送电子邮件()

自定义渲染器

错误

谢谢,詹姆斯

0 投票
3 回答
86997 浏览

asp.net-mvc - 区域之间的 RedirectToAction?

有没有办法重定向到不同区域的特定动作/控制器?

0 投票
2 回答
310 浏览

ruby-on-rails - Rails redirect_to 应该发送 html 吗?

在大多数框架中,发送重定向意味着设置 HTTP 标头并退出而不将任何 HTML 数据发送回浏览器。但是,使用 Firebug 我发现 Rails 没有遵循这个约定:

作为回应,标头具有:

它也 有 show action 的结果,两次

任何想法为什么?