准确地说,我想在用户单击“保存更新”时更新许多表。因此,用户所做的所有更改(添加/删除/更新)都将在Web api中处理。我不想使用视图模型,因为我的上级说过,它有点像我在Angular中所做的重复模型。有想法吗?
答案 0 :(得分:0)
好吧,让我们从概念上来看。
由于有一个保存按钮,这意味着您已经有一个表单,并且有了Angular模型,这些模型当然是JavaScript模型。该表格上必须有一个提交按钮,您才能访问您的角度应用程序中的所有数据。到目前为止,您不需要后端的任何内容。
接下来,您需要将数据提交到WebAPI。我们正在谈论从前端应用到后端应用的转移。 WebAPI具有端点,它们采用模型来捕获数据。如果不完全一样,这些型号将非常接近您的前端型号。这并不意味着您不应该拥有它们。
在构建混合了不同堆栈的系统时,确实发生了类似的事情,其中模型以不同的格式存在于多个地方。
有多种处理方法,您可能会有一个过程,其中在编译MVC应用程序时,会添加一些步骤以自动为您生成JavaScripts模型,因此,这并非全部都是手动的,但最终如果您想对代码有任何合理的了解,则仍然需要双方都使用模型。
最终,您将需要在Angular上使用模型,而在WebApi上需要模型。您还需要使它们保持同步。
我将与对方聊天并解释这些事情。
如果您不想将来再出现这样的情况,则可以坚持使用经典的MVC做事方式。
例如,您不需要使用Angular。我并不是说这个决定是错误的(这完全取决于它对项目有多大的帮助,并且有充分的理由把它混进去),但是您现在所处的情况是这样做的直接结果。 MVC具有使用后端模型构建表单的独特方式,因此不需要JavaScript特定的模型。
当然,您可以完全消除后端模型,而仅从提交的表单中获取数据(WebApi可以做到),然后您可以简单地将数据传输到Entity Framework DTO,但这太麻烦了而且容易出错,所以我不会使用它。