0
我目前正在執行webapi調用,然後本質上將JSON映射到我的視圖的預定義模型(它定義驗證屬性等)。但是,我得到的JSON包含每個字段的元數據(例如type,required?,validation regex),所以我想知道是否有一種方法可以用適當的驗證規則動態生成我的模型。在ASP.NET MVC中動態生成模型和驗證
我在想的是,基於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": []
}
]
}
您可以發佈您收到的Json示例嗎? – Thennarasan
我想你可能正在尋找動態對象。 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/using-type-dynamic但使用動態處理時要格外小心。 – Verthosa
新增JSON例子我回來了。我正在使用NewtonSoft進行JSON操作。我的想法是收集一些字段對象,希望NewtonSoft可以通過反序列化直接填充,然後我可以根據請求特定字段動態創建模型,或者我需要將所述字段映射到我的預定義模型。無論如何,動態使用元數據仍然存在問題...... – user2367743