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属性时,它不会填充参数的属性。不过,相反的方案是可行的。