#c# #asp.net #asp.net-mvc #iis #global-asax
#c# #asp.net #asp.net-mvc #iis #глобальный-asax
Вопрос:
Я хочу проверить, находится ли пользователь на мобильной странице внутри функции Application_Start в Global.asax, чтобы создать мобильный режим отображения.
Есть ли какой-либо способ, которым я могу это сделать? Я устал запрашивать.Браузер.IsMobileDevice, но я получил исключение «Запрос недоступен в этом контексте»
Комментарии:
1.
Application_Start
запускается, когда ваш ASP.NET приложение запускается первым. Она не запускается при каждом запросе от пользователя (отсюда и отсутствие доступа кRequest
), поэтому это не лучший выбор для обработки действия, специфичного для пользователя / запроса
Ответ №1:
Используйте Application_BeginRequest
вместо этого также используйте HTTP_USER_AGENT
переменную сервера вместо запроса.IsMobileDevice :
void Application_BeginRequest(object sender, EventArgs e)
{
var u = Request.ServerVariables("HTTP_USER_AGENT");
var uri = Request.Url.AbsoluteUri.ToLower();
//put DetectMobileBrowsersCode Here, for exmaple if user agents contains apple , android , etc ...
if (b.IsMatch(u) || v.IsMatch(Left(u, 4)))
{
Response.Redirect("http://m.yoursite.com");
}
}