我在我的母版页上没有放置脚本标记,如果用户没有启用 javascript 或其浏览器不支持 javascript,它会重定向到特定视图。我正在使用此代码
<noscript>
<% Response.Redirect("../UserLogin/Error"); %>
</noscript>
但问题是每次我打开页面时它都会重定向我,尽管我的 javascript 已启用。我使用 asp.net mvc2 可能是什么问题,或者有没有其他方法可以做到这一点?
我在我的母版页上没有放置脚本标记,如果用户没有启用 javascript 或其浏览器不支持 javascript,它会重定向到特定视图。我正在使用此代码
<noscript>
<% Response.Redirect("../UserLogin/Error"); %>
</noscript>
但问题是每次我打开页面时它都会重定向我,尽管我的 javascript 已启用。我使用 asp.net mvc2 可能是什么问题,或者有没有其他方法可以做到这一点?
Response.Redirect
在服务器端执行,它会向浏览器发送一个 302 状态码,浏览器会自动重定向。你可能想要:
<noscript>
Please enable javascript to use this site.
</noscript>
标签noscript
在客户端(浏览器)中进行评估。服务器不知道客户端是否支持脚本,所以每次都会重定向。
编辑
更好地解释:服务器只是创建一个字符串(HTML)并将其发送到浏览器。它不会解析浏览器是否支持脚本。
编辑 2
您可以使用元刷新标签。看:
<head>
<noscript>
<meta http-equiv="refresh" content="0;url=http://example.com/" />
<!-- Redirect to http://example.com/ immediately -->
</noscript>
</head>
我在firefox中测试过并且可以工作。