asp.net-ajax - Web API Post 参数始终为 Null

标签 asp.net-ajax asp.net-web-api

有没有人找到合适的解决方案? 我只是满怀希望地尝试使用 WebAPI(在使用 KO 和 HTML5 在 php/reSTLer 中成功实现 rest api 之后)。 Get 就像魅力一样工作。在过去的 20 多个小时里一直卡在岗位上,因为无论我的变量总是空值是什么。无论如何,我确实有 DTO 和存储库实现,这是我的框架的一部分。 我尝试使用 FromBody 提示和我搜索中几乎所有可用的东西。 我正在使用 CRest 和 Fiddler 对此进行测试。 我什至可以获取原始的 request.content,然后自己处理 json 加载等。 这一点我只是很沮丧,正在考虑回到 4.0 并再次使用 wcf 生成 ResT。 任何帮助将不胜感激......

DTO:
public class TestEntity
{
    public TestEntity() { } 
    public int UserId { get; set; }
    public string UserName { get; set; }
}

Controller : 公共(public)类 testController : ApiController

{
    // POST api/test
    public TestEntity PostTest([FromBody] TestEntity t)
    {
        var x = new TestEntity();
        if (!this.ModelState.IsValid)
        {

            return x;
        }
        else
        {
            return x;
        }
    }

我正在通过 CREST 调用 ....

最佳答案

我认为当您使用 xml 类型调用 api 时出现问题,

Web API 默认使用 Json Serializer,因此您的应用程序在将内容类型更改为 JSON 后可以正常工作。

查看下面的代码并将其添加到您的 WebApiConfig.cs 中,它用于处理 XML 类型的请求。

config.Formatters.XmlFormatter.UseXmlSerializer = true;

然后再次调用您的服务。它会解决这个问题。

关于asp.net-ajax - Web API Post 参数始终为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12690514/

相关文章:

asp.net - 阻止 AJAX 计时器控制请求扩展 FormsAuthentication 票证?

c# - Asp .Net 更新面板未更新

c# - 如何拥有一个指向两个不同 Controller 端点的路由,它们在 WEB Api 2 中接受不同的参数

asp.net-mvc - 如何在 OAuth2 中使用 "Refresh token"

c# - 无法使用 Unity Bootstrap 为 ASP.NET Web API nuget 包注入(inject) System.Web.Http.Filters.ActionFilterAttribute

asp.net - 当我的服务器没有且无法安装 ASP.NET AJAX 扩展时,有什么方法可以使用 ASP.NET AJAX?

javascript - jQuery $(document).ready 和 UpdatePanels?

ASP.NET 客户端与服务器 View 渲染

jQuery $.ajax 使用字符串数组调用 Web Api

asp.net-mvc - 从 Asp.net WEBAPI 显式返回 JSON 字符串?