快速更新,因此,它在我的故障排除过程中原来的地方这个开始,如果我这样做,从我的应用程序后的工作,但如果我采取完全相同的数据,并尝试通过将它张贴提琴手该项目为空。尝试更换小提琴后,我坚持了很多“更容易”,但它看起来像烧毁了我,浪费了数小时。我也尝试通过chromes rest客户端发布这些数据,但它不起作用。我希望我知道为什么,因为如果我不能通过提琴手或镀铬物来工作,它真的会增加我未来的麻烦时间。的Web API后对象空
谢谢你试图帮助。
我想将数据从一个winforms应用程序发布到Web API。我最初有这个问题,但设置内容类型为应用程序/ JSON修复它,但现在我有相同的行为。我不记得改变什么,但我必须有。即使我从提琴手发布数据,也会发生这种情况。我从viemodel中删除了一切,但删除了1个字符串键值,以尝试消除数据本身中的格式问题,但在控制器端viewmodel仍然为空。不是价值观,而是视角模型本身。正在达成的控制器,但就像我说的对象为null
控制器看起来像这样
[HttpPost] public HttpResponseMessage LogValidation([FromBody]ValidationViewModel validationviewmodel) { //Do something }
示范
public class ValidationViewModel { public string AssetName { get; set; } }
被张贴
数据{ \"AssetName\":\"testname\" }
为了提供尽可能多的信息,当我从客户那里发布信息时,我正在做以下工作。这也是我如何生成的测试数据小提琴手使用
`public Task SubmitValidation()
{
ReportValidaton reportvalidation = new ReportValidaton();
var serializedReportValidation = JsonConvert.SerializeObject(reportvalidation);
var client = new HttpClient();
client.BaseAddress = new Uri("MyURI");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeader("application/json"));
MediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();
HttpContent content = new ObjectContent<ReportValidaton>(reportvalidation, jsonFormatter);
HttpResponseMessage response = client.PostAsync("api/LogValidation/", content).Result;
}`
您是否尝试POST {'AssetName:\“testname \”'},您能否看到GET请求是否有效? – Ofiris 2014-10-01 16:49:06
我以前没有,但在你的评论后,我做了同样的结果。谢谢。我不确定发生了什么事。这在星期四工作。甚至尝试过我上个星期四生成的一些测试数据,以确保我使用的是相同的格式,但仍然没有去。我还有其他一些数据类型,但为了确保它不是数据或格式问题,而将它们全部删除。虽然我怀疑这是正确的轨道,但有一些格式问题,我只是没有看到它。 – Grayson 2014-10-01 16:53:34
你最近重新命名了你的参数吗?通常当这发生在我身上时,这意味着我忘记了在重构后更新我的路由映射。 – Adam47 2014-10-01 17:46:06