我认为只要做出一些假设,就可以创建一个全球性的解决方案。在我构建任何东西之前,我想提出一个开放的解决方案,看看是否有人能找到缺陷或潜在问题。
鉴于所有下拉菜单都可以远程检索其数据。- 在 ajax 时代和级联框,这现在更常见了。(我们正在使用剑道下拉菜单。)
public SelectList GetLocations(int dependantarg);
SelectList 将作为 json 返回 - 但不是在 newtonsoft 序列化转换器自动注入之前:(在全局级别完成)
- json 的 EncryptedAndSigned 属性。此属性将包含完整 SelectList 的序列化版本,其中包含所有有效值,这些值也已加密。
- json 的 EncryptedName 属性。此属性将具有控制器操作名称 - 对于此示例,EncryptedName 值将是“GetLocations”
当发布 http 帖子时 EncryptedName : EncryptedAndSigned 也必须在帖子中发送。对于这个 JSON POST 示例,它将是:
{
Location_Id: 4,
GetLocations: 'EncryptedAndSigned value'
}
在服务器端:
[ValidateOptionInjection("GetLocations","Location_Id")
public ActionResult Update(Case case)
{
//access case.Location_Id safety knowing that this was a valid option available to the user.
}