我有这个jQuery get请求:
$.get($(this).attr("href"), { "searchExpression": "schroders" }, function (result) {
// do stuff
}, "html");
将get请求发送到此操作方法:
public PartialViewResult Tabs(string searchExpression)
{
return PartialView(new SearchViewModel
{
PagedFunds = _fundService.GetFunds(searchExpression)
});
}
$.get
请求向Tabs
方法发送请求,但searchExpression
始终为空字符串。我以前做过这个并且它工作了..有没有人知道为什么数据没有发送或Model Binder不工作?
编辑:我刚刚发现正在使用的jQuery版本是1.2.6。此外,还有另一个JS框架在网站上使用 - 我认为原型 - 所以这是我用于GET的完整功能,它管理兼容性问题:
jQuery(document).ready(function ($) {
$('.ActionControl a').click(function () {
$.get($(this).attr("href"), { searchExpression: "schroders" }, function (result) {
// do stuff
}, "html");
return false;
});
});
这提供了任何线索吗?感谢
答案 0 :(得分:0)
你是否通过firebug为get参数调试了它? 查看您通过ajax发送的参数。
如果没解决,请告诉我。
答案 1 :(得分:0)
戴夫 - 可能是你需要明确地装饰行动 - 即:
[AcceptVerbs(HttpVerbs.Get)]
确保它没有查找put / post请求等。我之前曾想过'html'部分,但这只会与返回类型有关。
见上面的评论 - 但是把它放在答案中:
dave - 我在一个带有jquery 1.4.2的小测试应用程序中对此进行了测试,它运行得很好。它可能与使用中的版本和/或与原型的冲突有关。你可能不得不将$ .get函数别名为jQuery.get(我认为这是语法)
请参阅http://docs.jquery.com/Using_jQuery_with_Other_Libraries
吉姆
答案 2 :(得分:0)
事实证明这是真正的问题的答案,如下所示:
How to send jQuery $.get so the Model Binder can bind a string to a parameter?