为什么这个简单的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可以将字符串绑定到参数?