作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道在客户端(javascript)你可以使用 windows.location.hash 但无论如何找不到从服务器端访问。我正在使用 asp.net。
最佳答案
我们遇到过需要在 ASP.Net 回发中保留 URL 哈希的情况。由于默认情况下浏览器不会将哈希值发送到服务器,因此唯一的方法是使用一些 Javascript:
当表单提交时,获取哈希 (window.location.hash
) 并将其存储在服务器端隐藏输入字段中 将其放入 id 为“urlhash
”,这样我们以后就可以轻松找到它。
在服务器上,如果您需要使用该值执行某些操作,则可以使用该值。如果需要,您甚至可以更改它。
在客户端加载页面时,检查此隐藏字段的值。您需要通过它所在的 DIV 来查找它,因为自动生成的 ID 是未知的。 是的,您可以使用 .ClientID 进行一些欺骗,但我们发现仅使用包装器 DIV 更简单,因为它允许所有这些 Javascript 存在于外部文件中并以通用方式使用。
如果隐藏的输入字段具有有效值,请将其设置为 URL 哈希(再次window.location.hash
)和/或执行其他操作。
我们使用 jQuery 来简化字段的选择等...总而言之,它最终只是一些 jQuery 调用,一个用于保存值,另一个用于恢复它。
提交前:
$("form").submit(function() {
$("input", "#urlhash").val(window.location.hash);
});
页面加载:
var hashVal = $("input", "#urlhash").val();
if (IsHashValid(hashVal)) {
window.location.hash = hashVal;
}
IsHashValid()
可以检查“undefined
”或其他您不想处理的内容。
当然,还要确保正确使用 $(document).ready()
。
关于url - 如何从服务器端获取 Url Hash (#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/317760/
我是一名优秀的程序员,十分优秀!