带有Web API的纯前端JavaScript与带有ajax的MVC视图

Pure Front end JavaScript with Web API versus MVC views with ajax

本文关键字:ajax MVC 视图 JavaScript Web API 前端 带有      更新时间:2023-09-26

这更多的是讨论人们对如何拆分web应用程序的看法。

我已经习惯了创建一个带有所有视图和控制器的MVC应用程序。我通常会创建一个完整的视图,并在完整页面请求时将其传递回浏览器,除非有特定的区域我不想立即填充,然后使用DOM页面加载事件调用服务器使用AJAX加载其他区域。

同样,当涉及到部分页面刷新时,我将调用一个MVC动作方法,它将返回HTML片段,然后我可以使用它来填充页面的部分。这将适用于我不想减慢初始页面加载速度的区域,或者更适合AJAX调用的区域。表分页就是一个例子。如果您想转到下一页,我希望通过AJAX调用获得该信息,而不是使用整个页面刷新。但是AJAX调用仍然会返回一个HTML片段。

我的问题是……我的想法是过时的,因为我来自一个。net背景,而不是一个纯粹的前端背景?

与我一起工作的一个聪明的前端开发人员,更喜欢在MVC视图中或多或少什么都不做,而宁愿在前端做所有的事情。直到web API调用填充页面。因此,比起调用返回HTML的MVC动作方法,他更愿意返回一个标准对象,并使用javascript创建页面的所有元素。

前端开发人员的方式意味着我通常从MVC模型验证中获得的任何好处,包括客户端验证,都将消失。这也意味着我从创建视图、强类型html模板等方面获得的任何好处都将不复存在。

我相信这意味着我需要为前端和后端验证编写相同的验证。javascript还需要有许多方法来创建DOM的所有不同部分。例如,在向表中添加新行时,我通常会使用MVC部分视图来创建行,然后将其作为AJAX调用的一部分返回,然后将其注入表中。通过使用纯前端方式,javascript将为来自api调用的行接收一个对象(例如,一个产品),然后从该对象创建一行。创建表行的每个单独部分。

所讨论的网站将有许多不同的领域,从管理,表单,产品搜索等。一个我认为不需要以单页应用程序方式构建的网站。

大家对此有什么看法?

我很想听听前端和后端开发人员的意见。

更新

根据一项建议,我在程序员栈交换中创建了一个线程以供讨论。

链接

前端开发者的方式意味着任何好处,我通常得到MVC模型验证,包括客户端验证走了

不,不一定。您也可以在Web Api中进行模型验证,请遵循此参考。

我的问题是……我对这个问题的看法是不是过时了,因为我来自.net背景,而不是纯粹的前端背景?

使用Web API代替MVC控制器将有利于编写不同平台的应用程序,包括移动,平板电脑,桌面,Web等。所以这个决定取决于你要支持多少设备,以及依赖于你的数据的其他不同应用程序是什么。

同样,返回对象(尤其是JSON)将是轻量级的,并且比返回HTML具有高可伸缩性。

使用Web API的另一个优点是它是纯HTTP的,不需要玩Razor。使用Web API,您可以使用HTML, JQuery和c#组合完成端到端应用程序,而无需编写大量razor代码。