【问题标题】:ASP.Net MVC Model binding a [Serializable] classASP.Net MVC 模型绑定一个 [Serializable] 类
【发布时间】:2015-04-17 21:17:09
【问题描述】:

我有这门课

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

还有这个 WebAPI 控制器方法:

[HttpPost]
[ResponseType(typeof(string))]
public IHttpActionResult SetMyObject(MyObject o) {
    // process object
}

但它无法将模型绑定到 MyObject 类。控制器方法中的对象 o 完全为空,每个属性都是默认的(所以大多为 null)。

原来这是因为 MyObject 上的 [Serializable] 注释。删除它会使模型绑定再次起作用。

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

【问题讨论】:

    标签: c# asp.net-mvc asp.net-web-api model-binding


    【解决方案1】:

    答案在解析器上的设置IgnoreSerializableAttribute

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

    检查:

    ASP.NET Web API and [Serializable] class

    【讨论】:

    • 谢谢,我已按照链接中的建议将序列化更改为 Json.NET。
    • 很高兴看到这一点;)祝您使用 Web API 好运
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    相关资源
    最近更新 更多