使用 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 调用返回错误消息?
在 DataTable Delete 操作中多次发送 Ajax 请求 - ASP.NET、JQuery、Ajax
在 ASP.NET 控件上使用 ajax/jQuery 表单验证