【问题标题】: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 调用的正确方法。

假设我有一个类似于您在 StackOverflow 上看到的 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,如果这些交互如何交互会很有趣。

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


【解决方案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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-16
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    相关资源
    最近更新 更多