Asp.net mvc ASP.NETMVC和Webservices/Ajax——应该走哪条路?

Asp.net mvc ASP.NETMVC和Webservices/Ajax——应该走哪条路?,asp.net-mvc,wcf,asp.net-ajax,Asp.net Mvc,Wcf,Asp.net Ajax,我正在开发一个ASP.NETMVC应用程序,它需要在不回发整个页面的情况下执行一些小的原子操作。这样做的逻辑方法当然是使用ajax调用 我的问题是-人们认为实现这一目标的最佳方式是什么? 据我所知,我可以按照以下思路来做: WCF+ajax mvc应用程序中的控制器操作-可能作为JSON结果返回 Webservices(独立/组合项目)+ajax 我要求用户在使用webservice/wcf/ajax时登录,这目前是通过cookie/sessionid完成的,但据我所知,上述所有方法都允许这

我正在开发一个ASP.NETMVC应用程序,它需要在不回发整个页面的情况下执行一些小的原子操作。这样做的逻辑方法当然是使用ajax调用

我的问题是-人们认为实现这一目标的最佳方式是什么?

据我所知,我可以按照以下思路来做:

  • WCF+ajax
  • mvc应用程序中的控制器操作-可能作为JSON结果返回
  • Webservices(独立/组合项目)+ajax
我要求用户在使用webservice/wcf/ajax时登录,这目前是通过cookie/sessionid完成的,但据我所知,上述所有方法都允许这样做

总的来说,无论我最终使用哪种方法,都将通过标准化的可访问方法调用访问数据库,因此我不会将所有内容都保留在同一个项目/名称空间中


希望听到人们对此的想法/经历

我建议将其作为控制器操作。原因如下:您可能最终能够使同一操作返回多个不同的表示。例如,GetPerson()操作可以以XML、JSON或HTML(可能还有其他表示形式)的形式返回人员数据


这是Rails和ASPMVC中常用的方法。

您肯定应该使用控制器操作,以下是几个原因:

  • 使用WCF/Webservices做这件事太过分了(我的假设是您还没有任何人人都使用的WCF/Webservices代码)
  • 使用控制器动作自然适合这种情况
  • 如果用户禁用了Javascript或浏览器不受支持,则可以轻松地进行回退。(只需创建两个返回完整视图的操作方法)
  • 正如Michael提到的,您可以通过呈现部分来执行原子更新

希望这会有所帮助。

这肯定是一种方法,控制器操作可以呈现部分(asp.net mvc语言中的用户控件)或json,具体取决于您的需求。简单,完全无痛。