ASP.Net MVC4 视图中刷新问题



我在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

最新更新