答案 0 :(得分:0)
首先,关于显示以前选择的值的浏览器,您可以尝试修改<form>
标记以禁用自动填充:
<form autocomplete="off"></form>
我认为您还可以将此属性添加到单个表单元素中,因此您可能更愿意仅将其添加到<select>
元素。
我不认为有问题的浏览器是Safari,是吗?我在过去发现,虽然大多数浏览器都会缓存从服务器加载的文档,但Safari会缓存您导航过的文档。
因此,我在一个MVC控制器上有以下内容,这个页面导致了我过去的问题:
Response.ClearHeaders();
Response.AppendHeader("Cache-Control", "no-cache");
Response.AppendHeader("Cache-Control", "private");
Response.AppendHeader("Cache-Control", "no-store");
如果您希望有选择地应用它,您可能希望将上述内容包含在某种浏览器检测if
语句中。
现在,对于你的视图模型,ko.computed
是一个简化的表示,还是你真的这样声明了?我从未见过以这种方式单独连接的计算。
我的建议是删除computed
向selectedOption
观察点添加subscription:
self.selectedOption = ko.observable();
self.selectedOption.subscribe(function(val) {
if (isNaN(val)) {
return;
}
$.getJSON("@Url.Action("GetTestArray", "Home")", { optionId: self.selectedOption() }, function (data) {
self.testArray([val, 2, 3]);
})
}
只有在selectedOption
可观察值中保存的值发生变化时,才会触发此订阅。