ASP.Net MVC和Webservices / Ajax - 采取哪条路线?

时间:2009-04-03 07:35:15

标签: asp.net-mvc wcf asp.net-ajax

我正在开发一个ASP.Net mvc应用程序,它需要在没有整个页面回发的情况下执行一些小的原子操作。这样做的合理方式当然是使用ajax调用。

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

据我所知,我可以按以下方式进行:

  • WCF + ajax
  • mvc应用程序中的控制器操作 - 可能以JSON结果返回。
  • Webservices(单独/组合项目)+ ajax

我要求用户在使用webservice / wcf / ajax时登录,目前通过cookie / session id完成,但据我所知,上述所有方法都允许这样做。

总而言之,我最终使用的方法是通过标准化的可访问方法调用来访问数据库,所以我没有将所有内容保存在同一项目/命名空间中。

愿意听到人们对此的想法/经历!

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

你绝对应该使用Controller动作,原因如下:

  • 使用WCF / Webservices这样做会有点过分(我的假设是你还没有任何人人都使用的WCF / Web服务代码)。
  • 使用控制器动作自然适合这种情况
  • 如果用户禁用了Javascript或浏览器不受支持,则可以轻松备份。 (通过创建几个返回完整视图的操作方法)
  • 同样,Michael提到您可以通过渲染部分来执行此原子更新

希望有所帮助。