我必须将项目从纯粹基于控制器的场景转移到使用Web API的场景。目前有很多视图已经完好无损,其形式从控制器填充,控制器调用注入的服务对象以获取其编辑(更新)方案的数据。
在表单加载时,不使用纯AJAX和jQuery方法填充表单的建议方法是什么?控制器调用Web API方法会不会导致效率下降?编写一堆一次填充表单字段的函数似乎效率不高。
另外,对于表单,我如何区分表单何时发布" POST"什么时候它会" PUT"?
答案 0 :(得分:1)
我不确定我是否完全理解你的问题,但我试了一下=)......
使用web api的目的是将数据分开或分离数据服务。当您使用(服务器端)MVC框架时,您将视图发送到包含准备好的HTML的客户端。当您调用web api时,您将只获得某种(请求的)格式的数据(xml,json,pdf,png)。
如何构建API在很大程度上取决于您的架构和风格...... 但是你将使用Ajax为你的HTML客户端检索数据......如果你走这条路线,你还应该看看像Ember.js,Angular.js或ASP.NET SPA模板这样的框架,因为你将使用很多Javascript =)......
请记住,API会被消耗掉。因此,消费者/客户负责从api准备数据。客户端可以是单页面应用程序(HTML)。它也可以是另一个准备视图的服务器(机器到机器通信)。因此,例如在MVC应用程序中从控制器中查询您的API(它是否有意义取决于用例)。
看看这本书:使用ASP.NET设计Evolvable Web API(http://chimera.labs.oreilly.com/books/1234000001708)这是对该主题的一个很好的解读,并解释了关于超媒体和休息以及http的很多背景。
HTH