2010-01-12 5 views
1

Я получаю сообщение об ошибке при создании моего решения vs2008 .net 3.5 Ошибка 1 Ссылка на объект требуется для нестатического поля, метода или свойства объектСсылка на объект требуется для нестатического поля, метода или свойства

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

страницу «System.Web.UI.Page.Request.get», кажется, higlighting в зеленый цвет, который не то, что я хочу. Может кто-нибудь объяснить, что происходит?

Спасибо,

+0

Лишняя скобка была удалена, но до сих пор вызывает ошибку. Кажется странным, я могу получить экземпляр объекта всего пару строк в коде без создания экземпляра раньше? – test

+0

Можете ли вы претендовать на эту страницу? this.Page.Request ...? –

ответ

1

Вы пытаетесь получить доступ к не-статическому свойству Page.Request без экземпляра. Вы должны вызвать его на экземпляр. Что-то вроде myPage.Request.

+0

@ Daniel Это выглядит как код, который живет в элементе управления. Элемент управления имеет свойство this.Page ... так что этот код должен быть действительным. Я думаю, что его проблема - дополнительная скобка в конце заявления. –

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(); 
0

Попробуйте использовать Page.Context вместо:

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

Вы пытаетесь использовать свойство страницы для управления от метода или свойства, которое определено как static?

Трудно видеть, что происходит, не видя полного контекста кода, но это объясняет, почему вы видите проблему в одной части кода, но не в другом.

0

Обычно это правильный подход:

String _XSLTPath = HttpContext.Current.Request.Url.Scheme; 
Смежные вопросы