为什么这个简单的jQuery不起作用?

我有这个jQuery get请求:

$.get($(this).attr("href"), { "searchExpression": "schroders" }, function (result) { // do stuff }, "html"); 

它将get请求发送到此Action方法:

 public PartialViewResult Tabs(string searchExpression) { return PartialView(new SearchViewModel { PagedFunds = _fundService.GetFunds(searchExpression) }); } 

$.get请求向Tabs方法发送请求,但searchExpression始终为空字符串。 我以前做过这个并且它工作了..有没有人知道为什么数据没有发送或模型Binder不工作?

编辑:我刚刚发现正在使用的jQuery版本是1.2.6。 此外,还有另一个JS框架在网站上使用 – 我认为原型 – 所以这是我用于GET的完整function,它管理兼容性问题:

 jQuery(document).ready(function ($) { $('.ActionControl a').click(function () { $.get($(this).attr("href"), { searchExpression: "schroders" }, function (result) { // do stuff }, "html"); return false; }); }); 

这提供了任何线索吗? 谢谢

你是否通过firebug为get参数调试了它? 查看您通过ajax发送的参数。

如果没有解决,请告诉我。

戴夫 – 可能是你需要明确地装饰动作 – 即:

 [AcceptVerbs(HttpVerbs.Get)] 

确保它不是在寻找一个put / post请求等。我之前曾想过’html’部分,但这只会与返回类型有关。

看到上面的评论 – 但把它放在答案中:

戴夫 – 我在一个带有jquery 1.4.2的小测试应用程序中对此进行了测试,它运行得很好。 它可能与使用中的版本和/或与原型的冲突有关。 你可能必须将$ .get函数别名为jQuery.get(我认为这是语法)

请参阅http://docs.jquery.com/Using_jQuery_with_Other_Libraries

吉姆

事实certificate,这是真正问题的答案在这里概述:

如何发送jQuery $ .get以便Model Binder可以将字符串绑定到参数?