Web Api 参数始终为空

2024-02-24

当我使用下面的ajax调用下面的Post方法时,为什么参数总是为空?

public IEnumerable<string> Post([FromBody]string value)
{
    return new string[] { "value1", "value2", value };
}

下面是通过ajax调用Web API方法:

  function SearchText() {
        $("#txtSearch").autocomplete({
            source: function (request, response) {
                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: "api/search/",
                    data: "test",
                    dataType: "text",
                    success: function (data) {
                        response(data.d);
                    },
                    error: function (result) {
                        alert("Error");
                    }
                });
            }
        });
    }

$.ajax({
    url: '/api/search',
    type: 'POST',
    contentType: 'application/x-www-form-urlencoded; charset=utf-8',
    data: '=' + encodeURIComponent(request.term),
    success: function (data) {
        response(data.d);
    },
    error: function (result) {
        alert('Error');
    }
});

基本上你只能有一个标量类型的参数,该参数用[FromBody]属性和您的请求需要使用application/x-www-form-urlencodedPOST 有效负载应如下所示:

=somevalue

请注意,与标准协议相反,缺少参数名称。您仅发送值。

您可以阅读有关 Web Api 中的模型绑定如何工作的更多信息this article http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1.

但当然,这种乱搞行为是一件病态的事情。您应该使用视图模型:

public class MyViewModel
{
    public string Value { get; set; }
}

然后摆脱[FromBody]属性:

public IEnumerable<string> Post(MyViewModel model)
{
    return new string[] { "value1", "value2", model.Value };
}

然后使用 JSON 请求:

$.ajax({
    url: '/api/search',
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify({ value: request.term }),
    success: function (data) {
        response(data.d);
    },
    error: function (result) {
        alert('Error');
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web Api 参数始终为空 的相关文章

  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • 无法访问本地 Docker 容器上的 Asp.Net Core

    我在 asp net core 中创建了一个应用程序 并创建了一个 dockerfile 来生成本地映像并运行它 FROM microsoft dotnet latest COPY app WORKDIR app RUN dotnet re
  • HTML 属性 bgcolor 已弃用:用什么代替?

    VStudio ASP NET 给出以下消息 Attribute bgcolor is considered outdated A newer construct is recommended 推荐的结构是什么 bgcolor是在一个 td
  • 对于 HTTPS,Request.UrlReferrer 为 NULL

    我在用 Request UrlReferrer AbsoluteUri 在我的项目中获取托管我的应用程序的 URL 如果我从 http 主机重定向 我可以获得 URL 但如果我从 https 主机重定向 我将得到 null 我怎样才能得到
  • 验证/操作多租户 Web API 中的输入参数

    假设我们有一个多租户博客应用程序 该应用程序的每个用户可能拥有多个由该服务托管的博客 我们的 API 允许读取和写入博客文章 在某些情况下 指定 BlogId 是可选的 例如 获取用 ASP NET 标记的所有帖子 api posts ta
  • 如何通过减少请求来改进 AJAX 实时搜索

    我正在构建一个 AJAX 实时搜索页面 到目前为止 一切都按预期运行 但我注意到我正在进行大量的 AJAX 调用 我知道发生这种情况的地点和原因 但我找不到阻止这些 AJAX 调用发生的方法 我将尝试给出快速解释 然后粘贴下面的代码 在页面
  • 使用 MVC 5 和实体框架的 jQuery 数据表

    我需要一些关于在控制器中放入什么内容的指导 以便我可以对 jQuery 数据表使用服务器端处理 我正在使用 MVC 5 和实体框架 示例位于 http datatablesmvc codeplex com documentation htt
  • MVC 操作过滤器和多线程

    我目前遇到了操作过滤器的线程问题 在我的应用程序上 我使用 ActionFilter 来执行每个操作的跟踪 此跟踪将提供统计信息 例如调用的持续时间 并记录参数被派往行动 实际的跟踪实现 由其他团队完成 使用 IDisposable 对象
  • 使 .net web api 队列请求以“单线程”方式运行

    我们有一个 c net Web API 服务调用代码 该代码无法一次处理多个数据库请求 该系统适用于需求相对较小的账单在线支付 我们无法控制代码来进行可以解决问题的更改 另一个使用相同代码的小组使用 WCF API 和服务配置将并发请求限制
  • 在 ASP.Net Web API 中的日志记录 DelegatingHandler 中读取 HttpRequestMessage.Content 时会丢失

    当尝试控制器中的操作中的对象时 它偶尔似乎为空 我发现这是由于ReadAsStringAsync in the SendAsync 覆盖DelegatingHandler 问题出在内容上 当我的客户端发送内容主体并在记录器中读取它时 控制器
  • 使用 DependencyResolver 通过 MVC 3 进行控制器实例化时出错

    我正在使用 MVC 3 并在应用程序启动时使用以下代码 UnityContainer container new UnityContainer new UnityMappings container DependencyResolver S
  • .live() 或 .livequery()

    我有一个Ajaxed的网站 Ajax的内容来自其他页面 例如about html contact html ajax 从名为 main content 的 div 获取内容 但是在 ajax 调用之后 我的其余脚本就中断了 比如tinysc
  • 防止exe文件上传到网站

    有人可以告诉我如何防止 exe 文件在网站上上传 即使 exe 文件位于 zip 文件内 新文件夹中的 exe 文件 然后压缩并上传新文件夹 允许用户上传文件 如果是 ZIP 并通过解压存档并评估其内容来进行服务器端检查
  • 如何在asp.net中的按钮单击事件调用之前和之后调用javascript函数

    我在 ASP NET 中创建了 ButtonClick 函数 如下所示
  • 将查询字符串添加到 Ajax url 调用

    我想知道当我们调用 Jquery Ajax 时是否可以将查询字符串与 URL 一起传递 例子 ajax type POST url index php task addNewInfo data regForm serialize dataT
  • ASP.NET:如何隐藏ListBox控件垂直滚动条?

    我已经尝试过CSS 溢出 自动 这不起作用 有什么办法可以实现吗 我是否需要创建我在 ASP NET 论坛上看到的自定义控件 我会像您提到的那样创建一个自定义控件 您想要的目标是什么 创建自己的滚动条以放入列表框中
  • 使用信用卡号的字符串格式

    我正在尝试将信用卡号显示为类似 的字符串 I tried txtbox Text string Format 0 ccNumber 但它不起作用 有任何想法吗 String Format 0 0000 0000 0000 0000 numb
  • 检测 ASP.NET MVC 上的会话过期

    我构建了一个购物车 它使用会话状态在用户浏览商店时保留购物车数据 我遇到一个问题 如果我在购物车的第 1 步上长时间打开浏览器窗口 然后按 转到第 2 步 我的操作会引发错误 因为第 2 步操作假定会话尚未过期并且ShopCart 对象处于
  • 将 MVC 站点部署到 IIS 会导致找不到默认共享部分视图

    我有一个可以在本地 IIS 上完美运行的网站 我的所有页面都使用默认的共享部分视图 这称为预期 Layout cshtml 该视图放置在我的共享文件夹中 这可以在这里看到 正如我所期望的那样 这非常有效 不过 我现在发布了我的网站 然后 我
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相

随机推荐

  • 显示两个日期之间的所有日期数据;如果特定日期不存在行,则所有列中显示零

    我想显示两个日期之间的所有日期 当缺少任何日期数据时 它应该在 val 列中显示零 declare temp table id int identity 1 1 not null CDate smalldatetime val int 插入
  • 使用javascript设置图像源和背景图像

    我看过许多其他帖子 我认为我正在使用建议的确切语法 但是 我没有让图像显示出来 我有一个jsfiddle http jsfiddle net abalter An7r5 是jsfiddle的问题吗 它也无法在我正在开发的网站上运行 div
  • 固件:配置 orion 上下文代理端口

    我在用着Orion 上下文代理 http catalogue fi ware org enablers publishsubscribe context broker orion context broker但默认端口在我的组织中无效 防火
  • 为 UIImagePickerController 启用 HDR 选项

    是否可以在我的应用程序中启用 HDR 选项 我以为它会自动存在 我寻找了其他媒体类型 认为 kUTTypeHDRImage 可能是一个选择 但没有这样的运气 它不是额外的源类型 也不能通过cameraCaptureMode使用 ipc so
  • 如何在codeigniter中调用另一个控制器中的一个控制器函数

    我有一个名为home php其中一个函数名为podetails有没有 我想在另一个控制器中调用这个函数user php 可以这样做吗 我读过关于HMVC在CI中 但我想知道是否可以不使用hmvc 要扩展控制器 请按照此操作tutorial
  • 使用异常映射器进行 Openejb Rest 集成测试

    我正在为我的 jax rs 服务编写一些集成测试 其中我有一组异常映射器 因此 在执行给定请求时 我期望基于异常映射器的特定响应代码 问题是在这个环境中运行时我无法调用异常映射器 我的服务应该在我的测试中抛出逻辑异常 Stateless P
  • 如何在 HTML 下拉列表中显示复选框?

    我需要填充一个下拉列表 HTML
  • 引用库中的 ASP.NET 相对路径

    我有一个 ASP NET 网站 我正在其中从 xml 文件加载一些验证规则 此 xml 文件名没有路径信息 被硬编码在库中 我知道硬编码名称不好 但我们就在这个例子中使用它 当我运行该网站时 ASP NET 尝试在source路径 名称硬编
  • PRESTASHOP NGINX + 重写规则

    我一直在为这种组合寻找一个好的解决方案 并遵循以下步骤 http www phamviet net 2012 06 03 prestashop rewrite url on nginx http www phamviet net 2012
  • Android模拟器没有窗框

    我是 Android 开发新手 并且对 Android 模拟器有疑问 它没有窗口框架 我无法将其移动到屏幕上或移动到第二个显示器 这让我很害怕 我尝试用谷歌搜索 但没有找到解决方案 谁能告诉我如何解决这个问题 我有同样的问题 有一个框架 它
  • Spring Boot 中的大小注释返回 400 Bad Request

    我在执行时没有收到消息错误 SizeSpring Boot bean 类中的注释 下面是我的文件 pom xml
  • 我可以在不先查询 EF 实体的情况下更新它吗?

    这是我的场景 我有一条通过 WCF 传递的简单消息 该消息代表现有数据库记录并具有all进行计算所需的数据字段 一旦我完成了计算 我想更新one该数据记录上的字段 目前 尝试简单地设置实体框架版本的所有字段 然后保留对象上下文的状态似乎没有
  • 如何获得两个具有不同绘图的窗口

    当我们有一个带有绘图的窗口时 有没有办法告诉 R 在新窗口中显示新绘图 plot 1 1 dev new plot 2 2 dev set dev prev go back to first title main test dev 1 de
  • 连接 ECONNREFUSED - 节点 js 、 sql

    我在 js 文件中有下一个代码 var mysql require mysql var TEST DATABASE nodejs mysql test var TEST TABLE test var client mysql createC
  • SWIFT 在 Main.storyboard 中定义的 UIImageview 中旋转图像

    我是 SWIFT 新手 正在练习学习 但在某些方面遇到了一些困难 我在 Main storyboard 定义的 UIImageview 中有一个图像 我需要旋转它 我有一个 IBOutlet 定义为 IBOutlet weak var im
  • 如何在 Redux 中为每个实例创建一个存储?

    有时 在 Redux 应用程序中为每个实例创建一个存储会很有用 Redux 的创建者自己创建了一个 Gist 来描述如何实现这一点 https gist github com gaearon eeee2f619620ab7b55673a4e
  • 在 c# 中使用 gmail API 修改消息标签时出现权限不足 [403] 错误

    我正在尝试使用 gmail api 读取 gmail 邮件消息 阅读邮件后 我将删除消息标签 这样我就不需要再次处理它 我能够成功阅读邮件 但是当我尝试修改邮件标签时 service Users Messages Modify mods u
  • 如何将 JSON 转换为字符串数组

    是否可以使用for json path以 JSON 数组格式格式化行 我有一个这样的专栏 Col1 abc def ghi jkl 我想像这样格式化它 Col1 abc def ghi jkl 到目前为止我已经让它看起来像这样 Col1 a
  • 如何从 C# 数组中删除重复项?

    我一直在与一个string C 中从函数调用返回的数组 我可能可以投射到Generic集合 但我想知道是否有更好的方法来做到这一点 可能通过使用临时数组 从 C 数组中删除重复项的最佳方法是什么 您可以使用 LINQ 查询来执行此操作 in
  • Web Api 参数始终为空

    当我使用下面的ajax调用下面的Post方法时 为什么参数总是为空 public IEnumerable