C# 将Json字符串发布到WebApi始终以null参数结束
嗨,我一直在努力解决这个问题。我有一个接受Json字符串作为POST的WebApi。客户端正在访问我们的Webapi。但是,“结果”始终为空。我已经研究了好几天,但没有找到答案。我正在使用邮递员发布对WebApi的响应。我是WebApi新手,这是我的第一篇文章。希望有人能对此有所启发。多谢各位 WebApiConfig.csC# 将Json字符串发布到WebApi始终以null参数结束,c#,json,asp.net-web-api,C#,Json,Asp.net Web Api,嗨,我一直在努力解决这个问题。我有一个接受Json字符串作为POST的WebApi。客户端正在访问我们的Webapi。但是,“结果”始终为空。我已经研究了好几天,但没有找到答案。我正在使用邮递员发布对WebApi的响应。我是WebApi新手,这是我的第一篇文章。希望有人能对此有所启发。多谢各位 WebApiConfig.cs public static void Register(HttpConfiguration config) { config.SuppressDefaultHost
public static void Register(HttpConfiguration config)
{
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new
HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
config.Filters.Add(new BasicAuthenticationFilterAttribute());
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}"
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
[Serializable]
public class OcrResultModel
{
public string requestId { get; set; }
public string customerRequestId { get; set; }
}
Global.asax.cs
public static void Register(HttpConfiguration config)
{
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new
HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
config.Filters.Add(new BasicAuthenticationFilterAttribute());
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}"
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
[Serializable]
public class OcrResultModel
{
public string requestId { get; set; }
public string customerRequestId { get; set; }
}
OcrDataReceiverController.cs-“结果”始终为空
[RoutePrefix("api/OcrDataReceiver")]
[Authorize]
public class OcrDataReceiverController : ApiController
{
[HttpPost]
[AllowAnonymous]
public HttpResponseMessage Post([FromBody]OcrResultModel result)
{
// Do Something
}
}
ocresultmodel.cs
public static void Register(HttpConfiguration config)
{
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new
HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
config.Filters.Add(new BasicAuthenticationFilterAttribute());
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}"
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
[Serializable]
public class OcrResultModel
{
public string requestId { get; set; }
public string customerRequestId { get; set; }
}
因为我是stackoverflow的新手,所以我还不能发布任何图片(邮递员)。在postman中,我有Content Type=application/json
正文:Raw-JSON(应用程序/JSON)
从类中删除可序列化的
。它会起作用的
由于Json.NET序列化程序默认将IgnoreSerializableAttribute
设置为true,因此它会忽略属性
public class OcrResultModel
{
public string requestId { get; set; }
public string customerRequestId { get; set; }
}