通过JSON完成ASP.NET MVC&AJAX的最佳方法是什么?
问题描述:
在ASP.NET webforms中,我用来编写AJAX应用程序,其中客户端将使用Web服务或页面方法和JSON与服务器进行通信。通过JSON完成ASP.NET MVC&AJAX的最佳方法是什么?
我是ASP.NET MVC的新手,并且发现可以使用使用JSON的Web服务或控制器操作。还有其他选择吗?我应该使用Web服务还是控制器操作?为什么?
答
大多数MVC应用程序对Ajax操作使用控制器操作。
我认为“为什么”是你利用你的技能和MVC基础设施。你在应用程序中所做的每件事都遵循MVC模型,为什么不把Ajax放入它呢?这只是一种非常自然的模式。
在服务器上,我经常发现自己忘记了是否调用了Ajax动作。我认为这是一件非常好的事情。调用动作的方法与动作的作用有关。当你使用渐进增强时(Ajax for Javascript启用,http post for non-js),情况尤其如此。然后模式如下图所示。我真的很喜欢我可以忘记沟通机制,并专注于我的应用应该做的事情。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyProgressiveEnhancedAction(FormCollection form)
{
// Handle Html Post
if (!Request.IsAjaxRequest())
return ActionViaHtmlPost();
// Ajax Invocation
...
当我使用这种模式,我经常发现我有胶水的抽象阿贾克斯主场迎战帖子一点点,其余的(模型,领域交互等)是常见的。