Asp.net mvc 4 从ModelBinder中的ValueProvider获取密钥

Asp.net mvc 4 从ModelBinder中的ValueProvider获取密钥,asp.net-mvc-4,model-binding,Asp.net Mvc 4,Model Binding,我有一个来自客户端的AJAX请求,该请求将json对象发布到我的ASP.NET MVC 4服务器,从而在ValueProvider中填充字典ValueProvider 现在,我事先不知道所有字段的名称(客户端有动态字段添加功能),所以我需要将它们打包到自定义ModelBinder(源自DefaultModelBinder)中的某种字典中 如果不知道IValueProvider.GetValue(key)中的键,我无法从controllerContext表单值或查询字符串中获取值,也无法直接从Di

我有一个来自客户端的AJAX请求,该请求将json对象发布到我的ASP.NET MVC 4服务器,从而在ValueProvider中填充字典ValueProvider
现在,我事先不知道所有字段的名称(客户端有动态字段添加功能),所以我需要将它们打包到自定义ModelBinder(源自DefaultModelBinder)中的某种字典中

如果不知道IValueProvider.GetValue(key)中的键,我无法从controllerContext表单值或查询字符串中获取值,也无法直接从DictionaryValueProvider中获取值


那么,我如何从ModelBinder中的ValueProvider访问所有键呢?

正如您所说,ValueProvider需要该键才能获取值,但是您可以通过自定义模型绑定器的controllerContext使用controllerContext.HttpContext.Request.Form访问所有键,如果有任何用处的话

e、 g


谢谢,但实际上我无法通过controllerContext获取所有钥匙。由于某些原因,controllerContext.HttpContext.Request.Form.AllKeys中未显示所需的键这是不正确的。例如,它不考虑此处未找到的路由值。
    protected override void BindProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor)
    {
            string[] allKeys = controllerContext.HttpContext.Request.Form.AllKeys;