2

次のようなモデルを含む Web API プロジェクトがあります。

public class Account{

string FirstName{get;set;}
string LastName{get;set;}
}

次のように、JSON 応答でプロパティに別の形式と大文字と小文字を使用することを希望します。

first_name
last_name

ある種のjsonフォーマッタを介してこれをグローバルに実行する方法はありますか、それとも適切なケースで個別のViewModelクラスを作成するのが最善ですか?

4

1 に答える 1

0

さまざまな理由から、個別のビューモデル クラスを作成する必要があります。

モデルを過度に露出しないように、個別のビューモデル クラスを使用することをお勧めします。10 個のフィールドを持つエンティティ クラスをビュー モデルとして使用し、そのうちの 5 個のみを公開したい場合、悪意のあるユーザーが余分なデータをクエリ文字列と共に投稿し、自動バインドが気付かないうちにそれを融合させる可能性があります。 .

あなたの例では、フィールドにまったく異なる名前を使用したい場合があります。これは、エンティティ クラスのカスタム ビューモデルを作成するのに最適な候補です。

これらの懸念事項を分離することで、将来的にアプリケーションを再利用しやすくなり、現在のテスト/デバッグが容易になります。ビュー モデルが多すぎる状況に陥った場合は、これらのさまざまなコントローラー、ビュー、およびモデルを別の領域に分割することを検討してください (領域に関するブログ)。

補足として、JSON をフォーマットする場合は、通常、JSON シリアライザー クラスの編集は多大な労力を要するため、事前に行うよりも事後に JavaScript で行う方が簡単な場合があります。キャメルケースを通過し、自動的に_分離された小文字に変換するスクリプトを作成できます。これを行うことの欠点は、機能がそのように実行されることを期待していなかった場合、将来的に意図しない影響を与える可能性があることです.

于 2012-11-08T19:29:56.923 に答える