【问题标题】:When can Request.Url be null?Request.Url 什么时候可以为空?
【发布时间】:2012-08-27 06:18:06
【问题描述】:

在我使用的控制器代码中:Request.Url.<Something>。 ReSharper 建议 Request.Url 可以为空。

那么,Request.Url 究竟什么时候可以为空?我不是在谈论测试,我只对一个已上线/已经部署的应用程序感兴趣。

请注意,到目前为止,我还没有收到使用 Request.Url 的任何 NullReferenceExceptions。

【问题讨论】:

    标签: asp.net-mvc-3 controller resharper


    【解决方案1】:

    HttpRequestBase 是一个类,ReSharper 将其视为一个实际的类,仅此而已(理论上,它可以是 null)。所以不分析这个具体Class的用法。

    实际上,我认为Request.Url永远不会成为null,所以在这种情况下忽略 ReSharper。

    【讨论】:

    • 说得好,我认为有时 reshaper 可能是一件危险的事情,但如果没有它,我可能不会读到这篇文章。干杯,伙计们。 P.S 拥抱和亲吻 reshaper :)
    【解决方案2】:

    实际上在使用Request.Url 时会出现NullReferenceException。当您创建自己的基控制器类并从中派生其他类时,Request 将为空。或者在将 ActionMailer 与 ASP.NET MVC 一起使用时,您必须创建一个派生自 MailerBase 的控制器类(这也会导致此控制器内的 Request 为空)。

    替代方案:使用HttpContext.Current.Request 或检查Request 是否为空。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2021-09-03
    相关资源
    最近更新 更多