使用JQuery Ajax和ASP.Net Mvc的正确模式是什么?

时间:2009-01-12 21:04:56

标签: javascript jquery asp.net-mvc ajax design-patterns

我对Mvc框架以及JavaScript和JQuery都很陌生。我正在尝试理解构建Ajax调用的正确方法。

假设我有一个“投票”按钮,类似于您在StackOverflow上看到的内容。当用户点击它时,我需要更新数据库中的投票计数并将新值返回给UI。目前我通过在“PostsController”上使用一个名为“VoteUp”的动作来实现这一目的,该动作采用“int postID”作为参数。

public PostsController : Controller
{
    public ActionResult VoteUp(int postId)
    {
        //Increment Post Vote Count
        return Json(voteCount); //Return just the new vote count as a JSon result.
    }
}

然后我通过调用url“http://mydomain.com/posts/voteUp?postId=5”通过ajax调用此方法。然后我返回一个带有新值的JSon ActionResult来用。更新UI。

这是实现这个的正确方法吗?同样,我对javascript和jquery都是全新的。我习惯于在asp.net webforms中作为click事件处理程序执行所有操作。任何指导都将不胜感激。

2 个答案:

答案 0 :(得分:12)

是的,听起来你说得对。

但请注意,如果您将postId更改为Id,则可以使用以下网址调用:

http://example.com/posts/voteUp/5

(使用默认路由。)这是个人偏好的问题。

答案 1 :(得分:3)

我会使用jQuery和JsonResult Controller来解决这个问题。您的jQuery代码将调用JsonResult,它将相关信息传递给模型代码以处理添加新投票。我写了一篇关于类似概念的简短教程,可以在http://www.dev102.com/2008/08/19/jquery-and-the-aspnet-mvc-framework/

找到