C# 为什么这个简单的jQuery不起作用?
我有一个jQuery get请求:C# 为什么这个简单的jQuery不起作用?,c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我有一个jQuery get请求: $.get($(this).attr("href"), { "searchExpression": "schroders" }, function (result) { // do stuff }, "html"); 将get请求发送到此操作方法: public PartialViewResult Tabs(string searchExpression) { return PartialView(new SearchViewModel
$.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始终为空字符串。我以前做过这件事,而且很有效。。有人知道为什么数据没有被发送或者模型绑定器没有工作吗
编辑:我刚刚发现使用的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;
});
});
这有什么线索吗?谢谢您调试firebug的get参数了吗? 查看通过ajax发送的参数
如果没有解决,请告诉我。Dave-可能是您需要明确地装饰该动作-即:
[AcceptVerbs(HttpVerbs.Get)]
为了确保它不寻找put/post请求等,我之前想知道“html”部分,但那只与返回类型有关
请参见上面的评论-但要将其放在答案中:
dave-我用jQuery1.4.2在一个小测试应用程序中对此进行了测试,效果非常好。这可能与正在使用的版本和/或与原型的冲突有关。您可能需要将$.get函数别名为jQuery.get,我想这就是语法 看
jim事实证明,这就是真正问题的答案,如下所述:
我更新了这条消息,其中有几点可能会对成功产生影响。。。。顺便说一句-我与firebug进行了检查,我可以看到?searchExpression=schroders被发送到URLdave中-我用jquery 1.4.2在一个小测试应用程序中对此进行了测试,它工作得非常好。这可能与正在使用的版本和/或与原型的冲突有关。您可能需要将$.get函数别名为jQuery.get,我想这就是语法。。我还在另一个项目中做了一个测试,它成功了。我现在是原型的敌人!我试试你对化名的建议。