非静态字段,方法或属性需要对象引用

时间:2010-01-12 19:01:45

标签: .net c#-3.0

构建我的vs2008 .net 3.5解决方案时收到错误 错误1非静态字段,方法或属性'System.Web.UI.Page.Request.get'

需要对象引用
String _XSLTPath = Page.Request.Url.Scheme 
    + "://" 
    + Page.Request.Url.Authority 
    + Page.Request.ApplicationPath.TrimEnd('/') 
    + '/' 
    + "webparts/weatherandtime/weather/xslt/RSSWeatherXSL.xsl";

Page对象似乎在绿色中高亮,这不是我想要的。有人可以解释最新情况吗?

谢谢,

5 个答案:

答案 0 :(得分:1)

您尝试在没有实例的情况下访问非静态属性Page.Request。你必须在一个实例上调用它。类似于myPage.Request

答案 1 :(得分:0)

您可能需要考虑使用StringBuilder使其更易于管理:

using System.Text;

StringBuilder sb = new StringBuilder();

// if this is a control or WebPart, replace Request with this.Page.Request
sb.Append(Request.Url.Scheme);
sb.Append("://");
sb.Append(Request.Url.Authority);
sb.Append(Request.ApplicationPath.TrimEnd('/');
sb.Append("/");
sb.Append("webparts/weatherandtime/weather/xslt/RSSWeatherXSL.xsl");

String _XSLTPath = sb.ToString();

答案 2 :(得分:0)

请尝试使用Page.Context

String _XSLTPath2 = Context.Request.Url.Scheme
                    + "://"
                    + Context.Request.Url.Authority
                    + Context.Request.ApplicationPath.TrimEnd('/')
                    + '/'
                    + "webparts/weatherandtime/weather/xslt/RSSWeatherXSL.xsl"; 

答案 3 :(得分:0)

您是否尝试将Page属性用于来自定义为static的方法或属性的控件?

如果没有看到代码的完整上下文,很难确切地知道发生了什么,但这可以解释为什么你在代码的一部分中看到问题但在另一部分却看不到。

答案 4 :(得分:0)

通常这是一种正确的方法:

String _XSLTPath = HttpContext.Current.Request.Url.Scheme;