我正在执行webapi调用,然后基本上将JSON映射到我的视图的预定义模型(定义验证属性等)。
但是,我得到的JSON包括每个字段的元数据(例如类型,必需?,验证正则表达式),所以我想知道是否有办法用适当的验证规则动态生成我的模型。< / p>
我在想的是,提供一个基于webapi数据的表单会很好,它也可以用于POST回来,而不需要转换为预定义属性的预定义模型。
这里有什么想法吗?也许我错过了一些明显的东西,因为这是我第一次处理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 :(得分:0)
我们最终使用Field对象的集合创建了一个合适的模型,然后视图动态地拉出给定页面的相关Field对象。然后我们创建了一个自定义模型绑定器来检查验证等等。