Я придумала метод, который работает, все еще довольно новый для Asp.Net, поэтому мне интересно, что думают другие.
Редактировать : Я расширил эту идею, введя временный (только для сеанса) файл cookie, который запоминает, есть ли в браузере NoScript, поэтому нам не нужно постоянно перенаправлять на одну и ту же страницу. просто используйте это значение bool при следующем запросе страницы.
Я сделал это в заголовке главной страницы:
<noscript>
<%# NoScriptPlaceHolder %>
</noscript>
В свойстве TabContainer Visible="<%# !NoJavascript %>"
.
Тогда в CodeBehind:
protected bool NoJavascript
{
get
{
TempCookie cookie = new TempCookie(); // session only cookie
if (cookie.NoJavascript) return true;
bool noJavascript = !string.IsNullOrEmpty(Request["noscript"]);
if (noJavascript)
cookie.NoJavascript = noJavascript;
return noJavascript;
}
}
protected string NoScriptPlaceHolder
{
get
{
if (NoJavascript)
return string.Empty;
string url = Request.Url.ToString();
string adv = "?";
if (url.Contains('?'))
adv = "&";
string meta = string.Format("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL={0}{1}noscript=true\">",
url, adv);
return meta;
}
}
Есть еще идеи?
Будущее: если у них не включены файлы cookie, я думаю, что утилита для передачи значения запроса noscript каждому запросу также поможет, иначе они будут перенаправляться на одну и ту же страницу при каждом запросе.