无脚本标记中的问题

时间:2010-09-04 11:24:32

标签: javascript asp.net-mvc noscript

我在我的母版页上没有放置脚本标签,如果用户没有启用javascript或者它的浏览器不支持javascript,它会重定向到特定视图。即时通讯使用此代码

 <noscript>    
  <% Response.Redirect("../UserLogin/Error");  %>
 </noscript>

但问题是每当我打开页面时它会重定向我,尽管我的javascript已启用。我使用asp.net mvc2可能是什么问题,还是有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:3)

Response.Redirect在服务器端执行,它将向浏览器发送302状态代码,该代码将自动重定向。你可能想要:

<noscript>    
    Please enable javascript to use this site.
</noscript>

答案 1 :(得分:1)

标记noscript在客户端(浏览器)中进行评估。服务器不知道客户端是否具有脚本支持,因此每次重定向时都是如此。


修改

更好地说明:服务器只创建一个字符串(HTML)并将其发送到浏览器。它没有解析浏览器是否有脚本支持。


编辑2

您可以使用meta refresh标记。参见:

<head>
    <noscript>
    <meta http-equiv="refresh" content="0;url=http://example.com/" />
    <!-- Redirect to http://example.com/ immediately -->
    </noscript>
</head>

我在firefox中测试并且工作。