我有一个ASP.NET MVC应用程序。我的应用程序在客户端使用jQuery。用户可以在多个字段中输入值,然后单击“刷新”。刷新表现得很奇怪。
单击“刷新”时,我执行以下JavaScript:
function refresh() {
var chosen = "(someField eq 'value')";
try {
if (chosen) {
var url = 'http://localhost:8089/item&c=' + chosen;
alert(url);
window.location = url;
} else {
window.location = 'http://localhost:8089/item';
}
return false;
} catch (ex1) {
alert(ex1);
}
}
chosen
的值实际上是通过函数生成的。我注意到当我使用某种类型的控件时,页面会挂起。这是奇怪的,我可以看到Fiddler提出的要求。然而,我在控制器动作中的断点从未被击中。如果我将alert
调用中的网址复制并粘贴到地址栏中,我的断点就会成功点击。所以,我完全糊涂了。
由于这涉及到一个特定的控件,我起初认为这是一个JavaScript错误。但是,我在控制台中看不到任何JavaScript错误。我还检查了是否有任何异常被吞下,我没有看到任何异常。
我在Fiddler看到请求的事实意味着我要进入网络服务器。然而,如果我在控制器动作的第一行有一个断点,我希望它会跳闸。它在我使用控件的场景中不会跳闸。如果我不使用控件,它会跳闸。 Fiddler的结果位于' - '。它永远不会回来。另外,我的ASP.NET视图中没有抛出异常。
我完全坚持这一点,并寻找潜在原因的想法。谢谢。
答案 0 :(得分:0)
此行为通常是控制器模型绑定期间出现问题的结果。
快速尝试尝试确保正在发送的查询字符串值已正确编码。
var chosen = "(someField eq 'value')";
chosen = encodeURIComponent(chosen);
将消除模型绑定器可能存在的任何不良角色问题。