2017-10-04 22 views
0

私は現在webapi呼び出しを実行しています。次に、JSONを基本的に事前定義されたモデル(検証属性などを定義しています)にマッピングします。ASP.NET MVCで動的にモデルと検証を生成

しかし、JSONには、各フィールドのメタデータ(型、必須?、検証正規表現など)が含まれているため、適切な検証ルールを使用してモデルを動的に生成する方法があるのだろうかと思います。

私が考えているのは、webapiデータに基づいたフォームを提示することです。このフォームは、あらかじめ定義された属性を持つ事前定義モデルへのすべての変換なしで、ポストすることもできます。

ここに任意のアイデアはありますか?おそらく、私が最初にRESTを処理してオブジェクトにマッピングしているので、私は何かが分かりません。私はJSON.Deserializeを使用してオブジェクトを作成しています。ここで

は、JSONの例である:

{ 
    "Fields": [ 
    { 
    "Alias": "Title", 
    "Name": "salutation", 
    "DataType": 4, 
    "DataTypeString": "OptionSet", 
    "Mandatory": true, 
    "Editable": true, 
    "Order": 1, 
    "CurrentValue": 0, 
    "Options": [ 
    { 
     "Name": "Mr", 
     "Value": "0", 
     "Default": false 
    }, 
    { 
     "Name": "Mrs", 
     "Value": "1", 
     "Default": false 
    }, 
    { 
     "Name": "Ms", 
     "Value": "2", 
     "Default": false 
    }, 
    { 
     "Name": "Miss", 
     "Value": "3", 
     "Default": false 
    } 
    ], 
    "OptionLinks": [] 
}, 
{ 
    "Alias": "First Name", 
    "Name": "firstname", 
    "DataType": 1, 
    "DataTypeString": "String", 
    "Mandatory": true, 
    "ValidationRegex": [ 
    "^[a-zA-Z]*$" 
    ], 
    "Editable": true, 
    "Order": 2, 
    "Options": [], 
    "OptionLinks": [] 
}, 
{ 
    "Alias": "Middle Name", 
    "Name": "middlename", 
    "DataType": 1, 
    "DataTypeString": "String", 
    "Mandatory": true, 
    "ValidationRegex": [ 
    "^[a-zA-Z\\s]*$" 
    ], 
    "Editable": true, 
    "Order": 3, 
    "Options": [], 
    "OptionLinks": [] 
}, 
{ 
    "Alias": "Surname", 
    "Name": "lastname", 
    "DataType": 1, 
    "DataTypeString": "String", 
    "Mandatory": true, 
    "ValidationRegex": [ 
    "^[a-zA-Z]*$" 
    ], 
    "Editable": true, 
    "Order": 4, 
    "Options": [], 
    "OptionLinks": [] 
    } 
] 
} 
+0

ご覧になるサンプルJsonを投稿できますか? – Thennarasan

+0

私はあなたが動的なオブジェクトを探しているかもしれないと思います。 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/using-type-dynamicダイナミクスを使用することは非常に壊れやすいので注意してください。 – Verthosa

+0

追加された例JSON私は戻ってきています。私はJSON操作のためにNewtonSoftを使用しています。私の考えは、NewtonSoftが非直列化を介して直接データを取り込むことができるフィールドオブジェクトのコレクションを持つことです。次に、特定のフィールドを要求することに基づいてモデルを動的に作成するか、いずれにしても、メタデータの動的使用について疑問が残っています... – user2367743

答えて

0

私たちは、Fieldオブジェクトのコレクションで、適切なモデルを作成することになった、その後、ビューを動的に指定したページに関連するFieldオブジェクトを引っ張ります。次に、カスタムモデルバインダーを作成して検証などを確認しました。

関連する問題