2014-10-08 57 views
0

將json數據發送到可序列化類時存在問題。在客戶端,當我檢查瀏覽器上的數據時,它是真的,但在服務器端,可序列化類的字段爲空。如何將json數據發送到可序列化類

客戶端側(使用道場):對票據對象的調試器線的Fileds分配

var Ticket = { 
     ProductId: productId, 
     Type: ticketType 
    }; 

    DataService.xhrPageMethodJson("api/Tickets/MyTickets" 
     , dojo.toJson(Ticket) 
     , { 
      success: function (data) { 
       debugger 
       loadSubPage(getRoot("Support/Tickets.aspx?mode=list")); 
      }, 
      error: function (err) { 
       LoadingOverlay.hide(); 
      } 
     }); 

Web方法:在該方法中ticket.ProductId,ticket.Type字段具有默認值或空值。

[HttpPost] 
    [AcceptVerbs("POST")] 
    [ActionName("MyTickets")] 
    [Authorize] 
    public void MyTickets([FromBody]Ticket ticket) 
    { 
     DataTable myTickets = db.Tickets.MyTickets(Globals.LogonUser.User.Id, ticket.ProductId, ticket.Type); 
     WebContext.Session["Tickets"] = myTickets; 
    } 

票務類:

[Serializable] 
[EntityTable(Name = "Tickets")] 
public class Ticket : Entity 
{ 
    public override int Id { get; set; } 
    public string Subject { get; set; } 
    public string Message { get; set; } 
    public DateTime SentDate { get; set; } 
    [JoinField(typeof(User), "Id")] 
    public int SenderUserId { get; set; } 
    [JoinField(typeof(Product), "Id")] 
    public int ProductId { get; set; } 
    [JoinField(typeof(TicketImportanceLevel), "Id")] 
    public int ImportanceLevel { get; set; } 
    public int Analyze { get; set; } 
    public int SolutionTransactionId { get; set; } 
    [JoinField(typeof(TicketType), "Id")] 
    public int Type { get; set; } 
    public int Status { get; set; } 
    public int AssignedUserId { get; set; } 
    public float Score { get; set; } 

} 

回答

1

我已經解決了這個問題,標識性的數據成員和類的數據契約。這裏我分享新的班級結構:

[Serializable] 
[DataContract] 
[EntityTable(Name = "Tickets")] 
public class Ticket : Entity 
{ 
    [DataMember] 
    public override int Id { get; set; } 
    [DataMember] 
    public string Subject { get; set; } 
    [DataMember] 
    public string Message { get; set; } 
    [DataMember] 
    public DateTime SentDate { get; set; } 
    [JoinField(typeof(User), "Id")] 
    [DataMember] 
    public int SenderUserId { get; set; } 
    [JoinField(typeof(Product), "Id")] 
    [DataMember] 
    public int ProductId { get; set; } 
    [JoinField(typeof(TicketImportanceLevel), "Id")] 
    [DataMember] 
    public int ImportanceLevel { get; set; } 
    [DataMember] 
    public int Analyze { get; set; } 
    [DataMember] 
    public int SolutionTransactionId { get; set; } 
    [JoinField(typeof(TicketType), "Id")] 
    [DataMember] 
    public int Type { get; set; } 
    [DataMember] 
    public int Status { get; set; } 
    [DataMember] 
    public int AssignedUserId { get; set; } 
    [DataMember] 
    public float Score { get; set; } 
} 
相關問題