我有这个类

[Serializable]
public class MyObject {
    // properties omitted
}

这个 WebAPI Controller 方法:
[HttpPost]
[ResponseType(typeof(string))]
public IHttpActionResult SetMyObject(MyObject o) {
    // process object
}

但它无法将模型绑定(bind)到 MyObject 类。 Controller 方法中的对象 o 是完全空的,每个属性都是默认的(因此大部分为空)。

原来这是因为 MyObject 上的 [Serializable] 注释。删除使模型绑定(bind)再次工作。

有没有办法保持 [Serializable] 并修复模型绑定(bind)?

最佳答案

答案在 Resolver 上的设置 IgnoreSerializableAttribute

((DefaultContractResolver)config.Formatters.JsonFormatter
  .SerializerSettings.ContractResolver)
    .IgnoreSerializableAttribute = true;

检查:

ASP.NET Web API and [Serializable] class

关于c# - ASP.Net MVC 模型绑定(bind)一个 [Serializable] 类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28557063/

10-12 14:24