我有一个ASP.NET MVC应用程序,非常沉重地使用ajax(jQuery)。在大多数情况下,用户永远不会离开页面 - 只是向控制器操作发出各种Ajax请求。在JavaScript中镜像C#模型 - ASP.NET MVC
通常,在制作ajax POST时,我将一个对象从JavaScript传递给控制器操作。在大多数情况下,我在JavaScript中创建的传递给控制器的对象也以C#模型的形式存在,所以我真的用JavaScript来镜像一些C#模型。
我的问题是 - 我是否在讨论这个错误?我担心的是我会在C#模型中更改一个属性名称,但忘记在JavaScript中更改它,直到它太晚并且用户发现它时才会知道它(我意识到单元测试会捕获很多这样的场景,但仍...)。
我正在考虑编写一些自动生成器来将我的一些C#类镜像为JavaScript - 但在进入所有这些废话之前,我想我会看看是否缺少明显的东西。
在此先感谢您的帮助!
编辑:
我使用ASP.NET MVC,所以当我进行AJAX POST到控制器,我从AJAX传递数据被自动解析成控制器的方法参数,只要它们具有同名。
是的,但数据来源于客户端(使用JavaScript)。我需要在JavaScript中创建一个具有类似命名属性的对象,以JSON格式发送给控制器,对吧?我可能会在这里错过一些基本的东西...... – MattW
@MattW - 是的,但JavaScript使这个很简单。您只需使用JSON表示法创建一个对象。即'{a:1,b:2}'或任何您的对象被调用。 Json是JavaScript Object Notation的缩写,注意这里的术语“对象”。请参阅http://msdn.microsoft.com/en-us/library/bb299886.aspx –
@Mystere感谢您的输入!我很熟悉JSON。问题是,如果我的C#模型有一个属性“a”(如你的例子),那么我必须在JavaScript中镜像该属性名称。如果我要在C#模型中更改属性名称“a”,则需要更改JavaScript中的JSON格式以镜像我的C#对象,否则数据将不会被ASP.NET MVC自动分析。我今天所做的是创建具有与我的C#类相同属性的JavaScript对象,并将其JSON格式传递给控制器。但是,如果属性名称发生更改,那么该属性将不再被解析 – MattW