繁体   English   中英

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

[英]Mirroring C# Models in JavaScript - ASP.NET MVC

我有一个ASP.NET MVC应用程序,该应用程序非常频繁地使用ajax(jQuery)。 在大多数情况下,用户从不离开页面-只是向控制器动作发出各种ajax请求。

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

我的问题是-我要解决这个问题吗? 我担心的是,我将在C#模型中更改属性名称,但是忘记在JavaScript中进行更改,并且直到为时已晚并且用户找到它时,才知道它(我意识到单元测试将解决许多这样的情况) ,但仍然...)。

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

在此先感谢您的帮助!

编辑:

我正在使用ASP.NET MVC,因此,当我向控制器进行ajax POST时,从ajax传递的数据将自动解析为控制器方法参数,只要它们具有相同的名称即可。

退后一步,考虑一下。

您要做的就是通过HTTP发送大量的键/值对作为数据。

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

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

这会破坏与使用您的HTTP API的任何人的兼容性,该合同以前是{foo:..},现在是{bar:..}。

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

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

请使用适当的JSON序列化器/反序列化器。

我为几个客户端使用了Json.NET。 http://james.newtonking.com/pages/json-net.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM