Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# [Serializable]类的Web.Api模型绑定不起作用_C#_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

C# [Serializable]类的Web.Api模型绑定不起作用

C# [Serializable]类的Web.Api模型绑定不起作用,c#,asp.net-mvc,asp.net-web-api,C#,Asp.net Mvc,Asp.net Web Api,我有一门课像 [Serializable] public class ApiClass { public string UserId { get; set; } public DateTime CreateTime { get; set; } } 在我的web api控制器中,方法如下: public Guid Post(ApiClass apiClass) { // do some stuff with pa

我有一门课像

[Serializable] 
public class ApiClass
{        
    public string UserId { get; set; }
    public DateTime CreateTime { get; set; }        
}
在我的web api控制器中,方法如下:

    public Guid Post(ApiClass apiClass)
    {
         // do some stuff with parameter.
    }
当我以json请求的形式发送对象时,由于某种原因,如果我对我的类使用[Serializable]属性,它不会被解析。但若我移除它,我可以从参数中获取值


原因是什么?

无论
Serializable
属性如何,您的模型绑定都应该可以正常工作,请确保发送数据的代码是正确的。下面的代码在DTO上使用和不使用
Serializable
属性都可以正常工作

$(function() {

    var data = { userId : "Shyju" };

    $.post("api/Values", data, function(response) {
        document.write(response);
    });

});
以及控制器值中的服务器代码

public string Post(ApiClass model)
{
    return "Received" + model.UserId;
}

是否出于其他原因需要[Serializable]属性?是的,有另一个实现需要它。我需要将此对象传递到那里。您是否尝试过-或者
IgnoreSerializableAttribute=false
可能会执行此操作trick@WestDiscGolfIgnoreSerializableAttribute=false成功了。谢谢你的帮助。我正在为这两种情况发送相同的序列化json正文。当我添加Serializable属性时,它不会填充参数的属性。不过,相反的方案是可行的。