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

时间:2010-07-29 10:11:14

标签: 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
    {
        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;
    });
});

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

3 个答案:

答案 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?