路过的FileUpload成功回调的对象控制器的操作方法 [英] Passing the object of FileUpload success callback to Controller Action Method
问题描述
JSON字符串
[{程序:易趣
US\",\"Date\":\"/Date(1384108200000)/\",\"TimePlus\":\"/Date(-62135596800000)/\",\"Campaign\":\"cwsi12\",\"Clicks\":0,\"EPC\":3.3799,\"Earnings\":6.7599,\"CampaignID\":\"5337412363\",\"Im$p$pssion\":\"0\",\"Status\":\"Duplicate
在数据库},{程序:易趣
US\",\"Date\":\"/Date(1384108200000)/\",\"TimePlus\":\"/Date(-62135596800000)/\",\"Campaign\":\"cwsi12\",\"Clicks\":0,\"EPC\":3.3799,\"Earnings\":6.7599,\"CampaignID\":\"5337412363\",\"Im$p$pssion\":\"0\",\"Status\":\"Duplicate
在数据库},{程序:易趣
US\",\"Date\":\"/Date(1384108200000)/\",\"TimePlus\":\"/Date(-62135596800000)/\",\"Campaign\":\"cwsi12\",\"Clicks\":0,\"EPC\":3.3799,\"Earnings\":6.7599,\"CampaignID\":\"5337412363\",\"Im$p$pssion\":\"0\",\"Status\":\"Duplicate
在数据库},{程序:易趣
US\",\"Date\":\"/Date(1384108200000)/\",\"TimePlus\":\"/Date(-62135596800000)/\",\"Campaign\":\"cwsi12\",\"Clicks\":0,\"EPC\":3.3799,\"Earnings\":6.7599,\"CampaignID\":\"5337412363\",\"Im$p$pssion\":\"0\",\"Status\":\"Duplicate
在数据库}]
块引用>查看型号
公共类EbayEarnings_Temp
{
公共字符串节目{搞定;组; }
公众的DateTime日期{搞定;组; }
公众的DateTime TimePlus {搞定;组; }
公共字符串竞选{搞定;组; }
公众诠释点击{搞定;组; }
公共小数EPC {搞定;组; }
公共小数收入{搞定;组; }
公共字符串的CampaignID {搞定;组; }
公共字符串林$ P $ {pssion获得;组; }
公共字符串状态{搞定;组; }
}VAR串行=新System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof运算(EbayEarnings_Temp));
变种C =(EbayEarnings_Temp)serializer.ReadObject(jsonString);我收到此错误
在解析值意外遇到性格:S.路径',行0,0
解决方案信息是JSON对象没有列出。您必须具有集成串行器或手动操作序列化JSON对象。
我想那一定是这样的:公众的ActionResult动作(对象消息)
{
// deserialise如果对象消息是一个字符串
VAR串行=新的JavaScriptSerializer();
变种C = serializer.Deserialize< YourClass>(消息); // deserialise如果对象消息是一个JSONObject
VAR串行=新DataContractJsonSerializer(typeof运算(YourClass));
变种C =(YourClass)serializer.ReadObject(消息); 返回PartialView(消息);
}或另一种解决方案:
我使用的库 Newtonsoft.Json 。如果你想在你的情况下使用它,它看起来像:
...
MyClass的M = JsonConvert.DeserializeObject<消息>(message.ToString());
VAR状态= m.Status; //...等等JSON String
[{"Program":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799,"Earnings":6.7599,"CampaignID":"5337412363","Impression":"0","Status":"Duplicate in Database"},{"Program":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799,"Earnings":6.7599,"CampaignID":"5337412363","Impression":"0","Status":"Duplicate in Database"},{"Program":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799,"Earnings":6.7599,"CampaignID":"5337412363","Impression":"0","Status":"Duplicate in Database"},{"Program":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799,"Earnings":6.7599,"CampaignID":"5337412363","Impression":"0","Status":"Duplicate in Database"}]
View Model
public class EbayEarnings_Temp { public String Program { get; set; } public DateTime Date { get; set; } public DateTime TimePlus { get; set; } public String Campaign { get; set; } public int Clicks { get; set; } public decimal EPC { get; set; } public decimal Earnings { get; set; } public String CampaignID { get; set; } public String Impression { get; set; } public string Status { get; set; } } var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(EbayEarnings_Temp)); var c = (EbayEarnings_Temp)serializer.ReadObject(jsonString);
I am getting this error
Unexpected character encountered while parsing value: S. Path '', line 0, position 0.
解决方案Message is json object not list. You must have integrated serializer or serialize json object in action manually. I think it must look like this:
public ActionResult action(Object Message) { // deserialise if Object Message is a string var serializer = new JavaScriptSerializer(); var c = serializer.Deserialize<YourClass>(Message); // deserialise if Object Message is a JsonObject var serializer = new DataContractJsonSerializer(typeof(YourClass)); var c = (YourClass)serializer.ReadObject(Message); return PartialView(Message); }
or another solution:
I use library Newtonsoft.Json. If you're going to use it in your case it would look like:
... MyClass m = JsonConvert.DeserializeObject<Message>(message.ToString()); var status = m.Status; //...and so on
这篇关于路过的FileUpload成功回调的对象控制器的操作方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!