有如下模型:
/// <summary>
/// 添加国家请求模型
/// </summary>
[Serializable]
public class AddCountry
{
}
WebApi中:
/// <summary>
/// 获取国家列表
/// </summary>
/// <param name="addContry"></param>
/// <returns></returns>
[HttpPost]
public IHttpActionResult GetCountry(AddCountry addContry)
{
return OK();
}
addCountry接收不到参数
解决方法:
1.去掉Serializable特性
2.应用 JsonObjectAttribute
/// <summary>
/// 添加国家请求模型
/// </summary>
[Serializable]
[Newtonsoft.Json.JsonObject]
public class AddCountry
{
}
3.设置 IgnoreSerializableAttribute
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API 配置和服务
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// 将 SerializerSettings 重置为默认值 IgnoreSerializableAttribute = true
config.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings();
}
}