jquery - ASP.NET WebAPI - 如何使用 $.getJSON 传递对象

标签 jquery asp.net-mvc asp.net-web-api

下面有一个 ASP.NET WebAPI 控件:

public SomeObject GetBenchMarkData(Comment comment)
        {
            //do stuff
        }

在客户端,我正在尝试以下操作:

var comment = { ID: 0, Text: $('#text').val(), Author: $('#author').val(), Email: $('#email').val(), GravatarUrl: '' };
            var json = JSON.stringify(comment);
            $.getJSON("api/MintEIQAPI/" + json,

问题是 GetBenchMarkData 操作永远不会被上面的 getJSON 查询调用。

有人可以帮我吗,我做错了什么?

谢谢。

最佳答案

默认情况下,如果您通过 GET 传递复杂类型,则需要使用 FromUri 属性来修饰操作参数。

在客户端:

$.get('api/movies/test',
      {Name:'Henrique', Age:'24'}, 
      function (res) {
           console.log(res);
      }
);

在 Controller 上:

public void Get([FromUri] Customer c)
{
    ...
}

这样您就可以告诉 WebApi 从查询字符串中反序列化参数。另请注意,您不会对传递到服务器的对象进行字符串化。

这篇博文解释了 WebApi 和 MVC 模型绑定(bind)的差异: http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx

关于jquery - ASP.NET WebAPI - 如何使用 $.getJSON 传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493111/

相关文章:

javascript - HTML 标签末尾的换行符?

asp.net-mvc - ASP.Net Web API帮助页面返回空输出

c# - 我的桌面应用程序在使用 async 和 await 调用 Web API 服务时挂起

c# - 为什么我们要在单个 Lambda 函数中托管 .NET Core Web 应用程序?

php - 如何在 Javascript 中访问 PHP 方法?

JQuery解析JSON数组

javascript - 使用 jquery 获取表中特定行的下拉列表的值

asp.net - 我应该将 IList 或 List 返回到 MVC 中的 Controller 吗?

asp.net-mvc - 这种逻辑的正确位置在哪里?

C# 和 ASP.NET MVC : Using #if directive in a view