如何在ashx webHandler ASP.NET 3.5中阅读postdata

时间:2014-11-12 17:58:41

标签: c# asp.net ashx

我正在尝试在ashx webhandler中访问post数据,在一个MVC项目中我使用Newtonsoft.Json来实现这一点。

Dictionary<string, string> postData = JsonConvert.DeserializeObject<Dictionary<string, string>>(data);

这导致了一个字典,我可以用

访问帖子数据
  if (postData.ContainsKey("myKey"))
    {
        someVar = postData["myKey"];
    }

在另一个项目ASP.NET 3.5中我似乎没有可用的Newtonsoft,我尝试使用:

object postData = new JavaScriptSerializer().DeserializeObject(data);

这个方法应该返回一个对象图,如果我在visual studio中查看调试器,它似乎工作正常, 我可以看到我发布的数据:

enter image description here

如果输入postData,如何访问此对象中的数据?我得到的唯一选项是:Equals,GetHashCode,GetType和ToString

我试过postData [0] .value;

但是这会产生错误:无法应用索引。

2 个答案:

答案 0 :(得分:2)

尝试使用自定义类型而不是对象,看看它是否有效

 public class yourKeyvalue
    {
        public string _Key{ get; set; }
        public string _value{ get; set; }

    }


    var postData = new JavaScriptSerializer().Deserialize<yourKeyvalue>(data);
    var Key = postData._Key 
    var Value = postData._value

答案 1 :(得分:1)

DeserializeObject输出字典,因此您应该可以执行此操作:

var postData = new JavaScriptSerializer().DeserializeObject(data) as Dictionary<string, object>;
var filename = postData["file"];