首页 > 解决方案 > JQuery 序列化为值元组

问题描述

我正在尝试将带有 JQuery 的表单提交给 C#,使用值元组作为目标对象的属性之一。但是,它似乎不起作用;我猜这与值元组的构造方式有关,因为在以相同方式Obj.Prop=x&etc..将值传递给没有默认构造函数的对象时也会出错。

下面是我正在做的事情。我想知道是否有办法以类似的方式做到这一点。我知道我可以创建一个与元组匹配的对象,或者分解属性并手动更改序列化字符串;但我希望尽可能避免这些。

$.ajax({
    url: '.../MyMethod',
    data: $('#MyForm').serialize(),
    succss: function (result) {
        blah();
    },
    error: function (e) {
        blah();
    }
});

表单序列化创建:

Id=4&Time.Hour=16&Time.Minute=30

MyMethod 有一个参数,SubmissionObject submission如下所示:

public class SubmissionObject 
{
    public long Id { get; set; }
    public (short Hour, short Minute) Time { get; set; }
}

但是,该对象将填充为

    Id: 4
    Time: (0, 0)

代替

    Id: 4
    Time: (16, 30)

标签: c#jqueryajaxserializationvaluetuple

解决方案


推荐阅读