ASP.NET Core中Server.Transfer的替代方案

我正在将ASP.NET应用程序迁移到ASP.NET Core,并且他们对 HttpServerUtility.Transfer(string path)进行了一些调用.但是,ASP.NET Core中不存在HttpServerUtility.

有没有我可以使用的替代方案?或者Response.Redirect是我唯一的选择吗?

我希望尽可能保持与旧应用程序相同的行为,因为Server.Transfer and Response.Redirect之间存在差异.

解决方法

我会看到一些选项,具体取决于您的情况:

>返回另一个视图:所以只是HTML.查看Muqeet Khan的回答
>返回同一控制器的另一个方法:这也允许执行其他操作的业务逻辑.只需写一些像返回MyOtherAction(“foo”,“bar”)的东西.
>返回另一个控制器的动作:查看Ron C的答案.我对这个解决方案有点麻烦,因为它省略了整个中间件,其中包含了90%的ASP.NET核心逻辑(如安全性,cookie,压缩),…).
>路由样式中间件:添加类似于路由的中间件.在这种情况下,您的决策逻辑需要在那里进行评估.
>中间件堆栈的后期重新运行:您基本上需要重新运行堆栈的大部分.我相信这是可能的,但还没有看到解决方案.我已经看过Damian Edwards(用于ASP.NET Core的PM)的演示文稿,他在没有Kestrel / TCPIP用法的情况下托管ASP.NET Core,只是为了在浏览器中本地呈现HTML.那你可以做.但这是一个很大的过载.

一句忠告:转移已经死亡;).这样的差异是ASP.NET Core存在和性能改进的原因.这对迁移不利,但对整个平台有利.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐