我有一個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