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

Posted

技术标签:

【中文标题】使用 JQuery Ajax 和 ASP.Net Mvc 的正确模式是啥?【英文标题】:What is the right pattern for using JQuery Ajax and ASP.Net Mvc?使用 JQuery Ajax 和 ASP.Net Mvc 的正确模式是什么? 【发布时间】:2010-10-01 00:31:58 【问题描述】:

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

假设我有一个类似于您在 *** 上看到的 Vote Up 按钮。当用户单击它时,我需要更新数据库中的投票计数并将新值返回给 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.
    

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

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

【问题讨论】:

很好的问题,ASP.NET-MVC 包括 ASP.NET AJAX,但 jquery 也支持 ajax,如果这些交互如何交互会很有趣。 【参考方案1】:

是的,听起来你说得对。

但是,请注意,如果您将 postId 更改为 Id,那么您可以使用如下 URL 调用:

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

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

【讨论】:

我会使用 JsonResult 而不是标准的 ActionResult。你可以简单地返回 voteCount;【参考方案2】:

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

【讨论】:

以上是关于使用 JQuery Ajax 和 ASP.Net Mvc 的正确模式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 和 ASP.NET MVC 从 AJAX 调用返回错误消息?

JQuery Ajax 在asp.net中使用总结

在 DataTable Delete 操作中多次发送 Ajax 请求 - ASP.NET、JQuery、Ajax

在 ASP.NET 控件上使用 ajax/jQuery 表单验证

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

ASP.NET中JQuery+AJAX调用后台