繁体   English   中英

如何将json数据发送到可序列化的类

[英]how to send json data to serializable class

将json数据发送到可序列化类时出现问题。 在客户端,当我在浏览器上检查数据为true时,但在服务器端,可序列化类的字段为null。

客户端(使用dojo):在调试器行上分配故障单对象的文件

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字段具有默认值或null。

    [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; }

}

我已经通过将属性标记为数据成员并将类标记为数据协定解决了这个问题。 在这里,我分享了新的类结构:

[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; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM