Избегать, чтобы эта культура проверяла каждый звонок? - PullRequest
0 голосов
/ 04 февраля 2011

Позвольте мне рассказать вам о моем сценарии. У меня есть мультиязычный сайт, и мои культуры хранятся в базе данных, и у меня есть свойство public bool Active { get; set; }

  1. Если вы заходите на мой сайт с, скажем, русской культурой в вашем браузере, это не поддерживается на моем сайте, поэтому мне нужно установить для этой культуры "se" (или что-то еще).

  2. Если вы заходите на мой сайт с поддерживаемой культурой, но он не активен, мне нужно установить значение по умолчанию "se" (или что-то еще).

Теперь я могу легко выполнить эту проверку в моем методе override IHttpHandler GetHttpHandler. Дело в том, что я не хочу звонить в базу данных каждый раз, когда сайт делает какие-либо звонки на сайте. Я думаю, что я делаю сессию ["firstVisit"], чтобы уменьшить эту проверку, но я вроде не знаю, как мне это сделать, потому что мой сценарий говорит, что not set to an instance of an object в строке сеанса ["firstVisit"], поэтому мой вопрос, как мне справиться с этим? И какие еще есть варианты?

моя мысль примерно такая

protected override IHttpHandler GetHttpHandler(System.Web.Routing.RequestContext requestContext)
        {            
            String culture = requestContext.RouteData.Values["culture"].ToString();

            if (HttpContext.Current.Session["firstVisit"].ToString() == string.Empty)
            {
                //do the check
            }

            var ci = new CultureInfo(culture);
            Thread.CurrentThread.CurrentUICulture = ci;
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);
            return base.GetHttpHandler(requestContext);
        }

РЕДАКТИРОВАТЬ

Почему я не подумал об этом, я просто сделал проверку в protected void Application_Start(), чтобы избежать сеансов

1 Ответ

0 голосов
/ 04 февраля 2011

Использовать global.asax.cs:

protected void Session_Start( object sender, EventArgs e )

Этот метод вызывается при первом создании сеанса.Затем вы можете выполнить проверку, ввести информацию о вашем языке в сеанс и хранить ее в течение всего времени, пока сеанс работает через взаимодействие пользователя с вашим сайтом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...