Witam,
Jako dosyć początkujący piszę serwis w technologii ASP.NET MVC3 C# i chciałbym, żeby użytkownik kiedy wchodzi na jakąkolwiek podstronę (w szczególności główną) otrzymywał widok błędu - serwis nieobsługiwany przez Internet Explorer o wersji niższej niż 9.0 .
Robię to po stronie serwera - dla bezpieczeństwa. W pliku global.asax dodaję metodę Application_BeginRequest i w niej sprawdzam jaką przeglądarką posługuje się użytkownik. Aby nie zapętlić w nieskończoność, daję warunek o przekierowaniu dla url-i gdzie nie występuje słowo 'error' (to jeden z moich kontrolerów).
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpBrowserCapabilities browser = Request.Browser;
if(!Request.RawUrl.Contains("error"))
{
if(browser.Browser.Equals("IE") && Convert.ToDouble(browser.Version, CultureInfo.InvariantCulture.NumberFormat) < 9.0)
{
Response.Redirect("~/error/IEError");
}
}
}
Spełnia to swoje zadanie - bo faktycznie przekierowuje na stronę z błędem, ale nie ma na niej żadnych obrazków, ani styli css - nie są ciągnięte.
Powiem też, że gdy wchodziłem na stronę błędu IEError testowo i wyświetlałem dla siebie Request.RawUrl to pierwszym był ten właściwy - /error/IEError, ale po nim było jeszcze 5 innych symbolizujących najpewniej owe niezaciągnięte pliki graficzne, ew. css.
Jak najłatwiej zaradzić temu problemowi?
PS. Dodam tylko, że wyświetlana strona nie znajduje się w pojedynczym pliku, ale jest budowana z layoutu + treść.