gpt4 book ai didi

asp.net-mvc - 为什么在 Asp.net MVC 2 中的子操作中不允许重定向结果

转载 作者:行者123 更新时间:2023-12-03 11:03:46 27 4
gpt4 key购买 nike

我有一些使用 Asp.Net Futures RenderAction 方法呈现的部分操作。其中一些在其中的表单被处理后执行重定向。

现在我升级到 Asp.Net MVC 2 RC,它给了我一个错误“不允许子操作执行重定向操作”。

我检查了源代码,发现了引发异常的行。为了解决这个问题,我可以创建一个自定义的 RedirectResult,但在我这样做之前,我想先了解为什么框架不允许这样做。一定有一个很好的理由,也许我也不应该这样做。

有谁知道这个限制的原因?

谢谢

最佳答案

存在限制是因为 MVC 已经开始向客户端呈现 View 。从这一点重定向的效果是不确定的。它可以完美地工作,它可以继续渲染原始 View 而不重定向,它可以抛出不同的异常等。

由于执行此操作的结果未定义,因此框架会阻止它。在实践中,出于类似的原因,RenderAction 不应该用于渲染 View (或类似 View 的内容)以外的任何内容。

在您的特定情况下,外部操作应该重定向。如果您最终只是从 View 内部重定向而不向用户显示任何内容,那么首先确实没有目的通过 View ,因为外部操作可以适本地将工作委派给它自己的。

关于asp.net-mvc - 为什么在 Asp.net MVC 2 中的子操作中不允许重定向结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com