JavaScript仅在停止调试时对HiddenFor求值(ASP MVC4)
我在评估JavaScript(ASP MVC4)中的隐藏字段时遇到问题 我在视图中使用一个模型,并且在模型中有一个属性的隐藏输入JavaScript仅在停止调试时对HiddenFor求值(ASP MVC4),javascript,scope,helper,html.hiddenfor,Javascript,Scope,Helper,Html.hiddenfor,我在评估JavaScript(ASP MVC4)中的隐藏字段时遇到问题 我在视图中使用一个模型,并且在模型中有一个属性的隐藏输入 @Html.HiddenFor(mdl => mdl.FilterByUser, new { @id = "filterByUserId" }) 我有一个带有搜索框的助手,按下enter键我就开始搜索 $("#search-box").keydown(function (event) { var keypressed = event.keyCode |
@Html.HiddenFor(mdl => mdl.FilterByUser, new { @id = "filterByUserId" })
我有一个带有搜索框的助手,按下enter键我就开始搜索
$("#search-box").keydown(function (event) {
var keypressed = event.keyCode || event.which;
if (keypressed == 13) {
var searchValue = $("#search-box").val();
var filterByUser = $("#filterByUserId").val();
debugger;
window.location = "?searchValue=" + searchValue + "&filterByUser=" + filterByUser;
}
});
问题是,只有当我打开DeveloperTools并且浏览器停止在“调试器”中时,var filterByUser才有一个值。
如果工具已关闭,我会得到“参数字典包含不可为null的类型为'System.Boolean'的参数'filterByUser'的null条目”
另一个值searchValue在计算时没有问题
我能做些什么来解决这个问题?
谢谢你,丹尼尔,我知道了。问题是助手已经在表单中。如果我在jskeydown处理程序中放置了断点/警报,它就会被执行。如果没有,则使用文本上的form.submit调用控制器操作。按下enter键 我的解决方案:删除js处理程序,并调整表单中的属性以匹配控制器操作属性