none
Невызываемый член "System.Web.HttpRequestBase.ServerVariables" RRS feed

  • Вопрос

  • При запуске команды Request.ServerVariables(); в Web Matrix,

    выходит ошибка: Compiler Error Message: CS1955: Невызываемый член "System.Web.HttpRequestBase.ServerVariables" не может использоваться в качестве метода.

    Такое происходит и с другими командами взятыми из Asp.net.

    Что делать?

Ответы

  • Пожалуйста, соблюдайте спокойствие :). Специально вас тут никто не хочет запутать, наоборот мы хотим вам помочь. Старайтесь сразу рассказать максимально подробно что вы хотите сделать и с помощью чего. Также, если вы нашли какой-либо готовый пример, то проверяйте что он вам подойдет. Вы же не будите пытаться поставить двигатель от Лады в Мерседес?)

    var userLocale = Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]; //получение языка
    var lang = userLocale.Substring(0,2); //выделение языка
    switch(lang)
    {
       case "ru":
       //русский язык
          break;
       case "en":
       //английский
          break;
       default:
       //язык по-умолчанию
          break;
    }


    Для связи [mail]

    Модератор
  • Это не комманда, а метод, а ещё точнее свойство, а Вы вызываете его напрямую. Вызывать нестатический метод абстрактного класса нельзя. Используйте его как индексатор.

    Request.ServerVariables[""]

    • Изменено YatajgaEditor 30 мая 2012 г. 11:44
    • Предложено в качестве ответа PashaPash 30 мая 2012 г. 11:47
    • Помечено в качестве ответа Abolmasov DmitryModerator 31 мая 2012 г. 8:20
    Модератор
  • Сделайте так

    var userLocale = Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"];

    Модератор

Все ответы

  • Это не комманда, а метод, а ещё точнее свойство, а Вы вызываете его напрямую. Вызывать нестатический метод абстрактного класса нельзя. Используйте его как индексатор.

    Request.ServerVariables[""]

    • Изменено YatajgaEditor 30 мая 2012 г. 11:44
    • Предложено в качестве ответа PashaPash 30 мая 2012 г. 11:47
    • Помечено в качестве ответа Abolmasov DmitryModerator 31 мая 2012 г. 8:20
    Модератор
  • Вот код:

    @{

    var userLocale = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE");

    var languages = Split(userLocale, ",", -1);
       
      if (language="de") {<p> Guten Tag</p> ;}
      else
    if (language="ru") {<p>Приветики!</p>;}
    }

    Что не так?

    Может обьясните?

  • Сделайте так

    var userLocale = Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"];

    Модератор
  • Сделайте так

    var userLocale = Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"];


    Это я уже догнал. У меня: Split не идёт?
  • А что именно, что получается и как нужно делить? И исправьте if (language="de") на if (language=="de"), в другом операторе соответственно.
    Модератор
  • А что именно, что получается и как нужно делить? И исправьте if (language="de") на if (language=="de"), в другом операторе соответственно.

    var languages = Split(userLocale, ",", -1);

    Пишет ошибку: Имя 'Split' отсутствует в текущем контексте.

  • Split это метод уровня экземпляра, его нужно вызвать на объекте.

    userLocale.Split();

    Модератор
  • Split это метод уровня экземпляра, его нужно вызвать на объекте.

    userLocale.Split();

    Достало уже всё. Что нормально написать нельзя? Где вызвать? Куда вызвать? На каком объекте?

  • "Достало уже всё." - спокойнствие, иначе далеко не уедете. Я же ясно написал, вместо передачи объекта userLocale в Split(userLocale, ",", -1),

    вызывайте его на userLocale.Split(',', 1);

    Модератор
  • Вот какая ошибка выходит: Наиболее подходящий перегруженный метод для 'string.Split(params char[])' имеет
    несколько недопустимых аргументов.

    Вот код который я взял за основу, на сайта Майкрасофт, и пытаюсь переделать в WebMatrix:

    Определение языка клиента на странице ASP
    <%@ LANGUAGE="VBSCRIPT" %>
    <% Option Explicit %>
    <%
    Dim userLocale
    userLocale = request.servervariables("HTTP_ACCEPT_LANGUAGE")

    Response.Write "Language string: <B>" & userLocale & "</B><BR><BR>"
         
    Dim languages
    languages = Split(userLocale, ",", -1)

    Dim language
    For Each language in languages
      If InStr(language, "de") <> 0 Then        

        Response.Write "Guten Tag"               

        Response.End
      ElseIf InStr(language, "fr") <> 0 Then      

        Response.Write "Bonjour"                  
        Response.End
      ElseIf InStr(language, "es") <> 0 Then      
        Response.Write "Hola"                      
        Response.End
      ElseIf Instr(language,"en-us") <> 0 
        Response.Write "Hello"
        Response.End
      End If
    Next

    %>

    Вот!!!

  • Вот код который я взял за основу, на сайта Майкрасофт

    Чтобы было легче вам помочь, приводите ссылку на страницу, где вы взяли материал.

    Определение языка клиента на странице ASP
    <%@ LANGUAGE="VBSCRIPT" %>

    У-у-у... Это же ASP и VBScript. Забудьте про эти технологии, они давно устарели.

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

  • Насколько я знаю Вы используете ASP.NET и Razor, тогда что за код привёд высше из классического ASP? Не надо брать всё подряд и пихать куда попало.
    Модератор
  • Вот код который я взял за основу, на сайта Майкрасофт

    Чтобы было легче вам помочь, приводите ссылку на страницу, где вы взяли материал.

    Определение языка клиента на странице ASP
    <%@ LANGUAGE="VBSCRIPT" %>

    У-у-у... Это же ASP и VBScript. Забудьте про эти технологии, они давно устарели.

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

    http://support.microsoft.com/?id=315616
  • Пожалуйста, соблюдайте спокойствие :). Специально вас тут никто не хочет запутать, наоборот мы хотим вам помочь. Старайтесь сразу рассказать максимально подробно что вы хотите сделать и с помощью чего. Также, если вы нашли какой-либо готовый пример, то проверяйте что он вам подойдет. Вы же не будите пытаться поставить двигатель от Лады в Мерседес?)

    var userLocale = Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]; //получение языка
    var lang = userLocale.Substring(0,2); //выделение языка
    switch(lang)
    {
       case "ru":
       //русский язык
          break;
       case "en":
       //английский
          break;
       default:
       //язык по-умолчанию
          break;
    }


    Для связи [mail]

    Модератор
  • var userLocale = Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]; //получение языка var lang = userLocale.Substring(0,2); //выделение языка switch(lang) { case "ru": //русский язык break; case "en": //английский break; default: //язык по-умолчанию break; }


    А как данный код будет влиять на поисковики?

    В WebMatrix, при проверке SEO, клинит, ошибка 500 ( URL cсылки не работает).

  • "А как данный код будет влиять на поисковики?" - никак, это код, а не разметка. "В WebMatrix, при проверке SEO, клинит, ошибка 500" - где, на какой именно?

    Модератор
  • "А как данный код будет влиять на поисковики?" - никак, это код, а не разметка. "В WebMatrix, при проверке SEO, клинит, ошибка 500" - где, на какой именно?

    Поставил код на сайт: При проверке сайта на СЕО, для главной страницы где написан код, выдаёт 2 ошибки и 1 предупреждение.

    Но если код ставить на сайт в PHP файле, то ошибок нет.

    И на PHP и на cshtml, сами коды работают отлично.

  • Всем спасибо. Тема закрыта.