我在MVC4中有如下代码 ASP.Net 我正在使用剃刀引擎。
@{
string sDefaultEnvironId = string.Empty;
}
<script language="javascript" type="text/javascript" >
function changeHd() {
$("#hdSelEnvironmentId").val("1");
}
</script>
<input type="button" value="ChangeHD" onclick="changeHd();" />
@Html.Hidden("hdSelEnvironmentId", sDefaultEnvironId)
首次访问此视图时,隐藏字段hdSelEnvironmentId
的值为空。 然后在我单击按钮后更改为1
ChangeHD
.但是在我按F5
之后,隐藏字段hdSelEnvironmentId
的值仍然1
,我期望它与初始空值而不是1
。谁能帮我弄清楚?我只是无法理解。我正在使用火狐和火虫,谢谢。
编辑 正如 Andreas 在这里发现的那样,您可以通过向输入添加属性autocomplete=off
来删除此行为:
@Html.Hidden("hdSelEnvironmentId", sDefaultEnvironId, new { autocomplete = "off" })
这种效果不是由于缓存 - 这是Firefox的一个功能(错误?),当你刷新页面时,页面的输入似乎不会从服务器重新加载。
- 在Chrome或IE中尝试相同的操作,您会看到该值重置为空
- 清除 Firefox 中的缓存,您会注意到该值仍然没有重置。
所以,我不确定是否有解决方法,但这个问题似乎仅限于 Firefox。
而不是将其设置为
@{
string sDefaultEnvironId = string.Empty;
}
只需在 JavaScript 中初始化它。
$(document).ready(function(){
$("#hdSelEnvironmentId").val() = "";
});
function changeHd() {
$("#hdSelEnvironmentId").val() = "";
$("#hdSelEnvironmentId").val("1");
}
我认为这会有所帮助.. 即使在文档再次加载时刷新页面时,该值也将设置为空,然后在单击按钮时设置为 1