路过的FileUpload成功回调的对象控制器的操作方法 [英] Passing the object of FileUpload success callback to Controller Action Method

查看:535
本文介绍了路过的FileUpload成功回调的对象控制器的操作方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆