【问题标题】:JavaScript evaluates HiddenFor ONLY when stop to debug it (ASP MVC4)JavaScript 仅在停止调试时评估 HiddenFor (ASP MVC4)
【发布时间】:2012-10-03 06:37:39
【问题描述】:

我在评估 JavaScript (ASP MVC4) 中的隐藏字段时遇到问题 我在我的视图中使用模型,并且模型中的属性有一个隐藏的输入

@Html.HiddenFor(mdl => mdl.FilterByUser, new { @id = "filterByUserId" })

我有一个带 SearchBox 的助手,按下回车键后我正在搜索。

$("#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;

    }
});

问题是 var filterByUser 仅在我打开 DeveloperTools 并且浏览器在“调试器”中停止时才具有值。 如果工具已关闭,我会收到“参数字典包含方法的不可空类型 'System.Boolean' 的参数 'filterByUser' 的空条目”

另一个值,searchValue 在被评估时没有问题。

我能做些什么来解决这个问题? 谢谢你,丹尼尔

【问题讨论】:

    标签: javascript scope helper html.hiddenfor


    【解决方案1】:

    我明白了。问题是助手已经在表单中。如果我在 js keydown 处理程序中放置一个断点/警报,它就会被执行。如果不是,则在按下 textarea 时使用 form.submit 调用控制器操作。

    我的解决方法:移除 js 处理程序,并调整表单中的属性以匹配控制器操作属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 2011-06-17
      • 1970-01-01
      相关资源
      最近更新 更多