Ссылка на объект требуется для нестатического поля, метода или свойства - PullRequest
1 голос
/ 12 января 2010

Я получаю сообщение об ошибке при сборке решения 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 ]

1 голос
/ 12 января 2010

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

0 голосов
/ 16 мая 2014

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

String _XSLTPath = HttpContext.Current.Request.Url.Scheme;
0 голосов
/ 12 января 2010

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

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

0 голосов
/ 12 января 2010

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

String _XSLTPath2 = Context.Request.Url.Scheme
                    + "://"
                    + Context.Request.Url.Authority
                    + Context.Request.ApplicationPath.TrimEnd('/')
                    + '/'
                    + "webparts/weatherandtime/weather/xslt/RSSWeatherXSL.xsl"; 
0 голосов
/ 12 января 2010

Возможно, вы захотите использовать 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...