【问题标题】:Migration from ASP.NET MVC 1.0 breaks Reponse and Request objects从 ASP.NET MVC 1.0 迁移会破坏 Response 和 Request 对象
【发布时间】:2011-10-07 17:20:40
【问题描述】:

我一直在尝试在其 Web 根目录中运行 ASP.NET MVC 1.0 应用程序的服务器上部署 ASP.NET 4.0 (webform) 项目。我进展缓慢,但碰壁了,所以我决定针对 MVC 框架 2.0 版和 .NET 框架 4.0 版重新编译 MVC 应用程序。我使用了一些工具来做到这一点。

该项目似乎已成功转换,但现在无法编译。具体来说,System.Web.HttpContextBase似乎有问题。

例如,如果我有以下代码:

context.HttpContext.Response.Clear();

我收到以下错误:

'System.Web.HttpContextBase' does not contain a definition for 'Response' and no extension method 'Response' accepting a first argument of type 'System.Web.HttpContextBase' could be found (are you missing a using directive or an assembly reference?)

我检查了对象资源管理器只是为了确保:HttpContextBase 确实有一个名为 Response 的属性。这件事快把我逼疯了。

我还有另一个大问题,我认为这与此有关。任何时候查询 Request 对象:

Request["old"];

上面写着:

Cannot apply indexing with [] to an expression of type 'System.Web.HttpRequestBase'

据我所知,这也没有任何理由。

我已经束手无策了。我检查了 MVC 2.0 的重大更改文档,但没有看到与此相关的任何内容。参考资料对我来说都很好;版本号全部签出。

关于服务器问题的进一步说明:除了 ftp,我没有任何访问部署 Web 服务器的权限。我不能进去乱搞服务器配置。这就是为什么这听起来有点奇怪。

【问题讨论】:

  • context.HttpContext .Current.Response.Clear();不是吗?
  • @asawyer 不幸的是,没有。奇怪的是,虽然智能感知确实让我可以选择说 context.HttpContext.Response,但 context.HttpContext.Current 根本不是一个选项。
  • 我想知道 IDE 和运行时是否在加载哪个版本的库上存在分歧。尝试创建一个新项目并将源代码移到其中并编译?
  • @asawyer 是的,你是对的!成功了!

标签: asp.net-mvc asp.net-mvc-migration


【解决方案1】:

我很高兴这对你有用,这里再次作为其他人的答案

您的 IDE 和运行时可能在哪个库上存在分歧 要使用的版本。尝试创建一个新项目并移动您的源代码 到它并再次编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多