我正在使用Angular和ASP.Net MVC构建应用程序。
我在应用程序中使用的所有数据都是由Web API提供的(我正在向我的ASP.Net控制器发出Ajax调用,后者又调用Web API并将API的响应返回到html页面)。
web api使用的模型很好地映射了我的需求,我真的不需要改变任何东西。
但是我应该简单地绑定到Web API提供的模型吗?我所看到的风险是,如果Web API发生任何变化,我可能最终会在我的应用程序中全部更改。如果我在一个地方将web api模型翻译成我自己的模型,我只需要在那里进行更改。
但另一方面 - 将Web API模型映射到我自己的模型似乎是一项非常不必要的工作,当模型最终几乎完全相同时。
答案 0 :(得分:1)
Keep things simple,当您控制应用程序的两面时引入映射层似乎是不必要的。
仅在需要时引入额外的复杂性,例如在我们的应用程序中,我们使用asp.net w / Nancyfx作为我们的rest api。我们有几次从api映射到模型,但这些是特殊情况(包含数据但行为的模型)。
答案 1 :(得分:0)
我们使用mapper的一个地方是将.net属性Pascal case映射到json属性camelCase。
但是看看this blog post,即使这可以通过提供正确的媒体格式化器来解决,因此可以删除映射层。
应根据具体情况使用映射层。希望对你有所帮助。
答案 2 :(得分:0)
1 - 浏览器调用WebAPI
2 - WebAPI返回JSON数据 - 实际上是域(或模型)对象 - 数据库表的副本。
3 - Javascript根据您的演示文稿将这些JSON对象转换为不同的对象(演示文稿总是很复杂 - 表格,图形,列表,格式化的事物,数据透视表)。
4 - HTML绑定到那些复杂的javascript对象
你可以在这里找到非常漂亮的例子:upida4net.codeplex.com 淘汰赛和角球。