gpt4 book ai didi

c# - 在 JavaScript 中镜像 C# 模型 - ASP.NET MVC

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:09 25 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 应用程序,它大量使用 ajax (jQuery)。在大多数情况下,用户永远不会离开页面 - 只是向 Controller 操作发出各种 ajax 请求。

通常,在进行 ajax POST 时,我会将一个对象从 JavaScript 传递到 Controller 操作。在大多数情况下,我在 JavaScript 中创建并传递给 Controller ​​的对象也作为 C# 模型存在,因此我实际上是在 JavaScript 中镜像我的一些 C# 模型。

我的问题是 - 我做错了吗?我担心的是我会在我的 C# 模型中更改属性名称,但忘记在 JavaScript 中更改它并且直到为时已晚并且用户发现它时才知道它(我意识到单元测试会捕获许多这些场景,但仍然……)。

我正在考虑编写某种自动生成器来将我的一些 C# 类镜像为 JavaScript - 但在进入所有这些废话之前,我想我会看看我是否遗漏了一些明显的东西。

在此先感谢您的帮助!

编辑:

我使用的是 ASP.NET MVC,所以当我向 Controller 发送 ajax POST 时,我从 ajax 传递的数据会自动解析为 Controller 方法参数,只要它们具有相同的名称。

最佳答案

退一步想一想。

您所做的只是通过 HTTP 发送一组键/值对作为数据。

您应该做的是将这些键/值对映射到服务器上的域对象/模型中。

默认映射可以是模型属性名称,但您不能在更改模型属性名称时更改 HTTP API。

这破坏了与任何使用您的 HTTP API 的人的兼容性,契约(Contract)过去是 { foo: .. },现在是 { bar: .. }。

基本上,您通过将模型更改传播到 HTTP API 更改而做错了。

您想要的是 Model.from(HTTPData) 工厂或其他类型的 Model.manipulate(HTTPData) 函数。

关于c# - 在 JavaScript 中镜像 C# 模型 - ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8409586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com