ASP.NET MVC 4 - 使用post方法

2024-06-29

在 Visual Studio 2010 中,我使用 ASP.NET MVC 4 创建 Web api 项目,如本示例所示:https://www.youtube.com/watch?v=H9vBxAH4f5E https://www.youtube.com/watch?v=H9vBxAH4f5E

一切正常 - 我成功使用GET方法,但是使用时POST方法,我遇到一个问题:

没有 MediaTypeFormatter 可用于读取“String”类型的对象 来自媒体类型为“application/x-www-form-urlencoded”的内容。

My webapiconfig.cs看起来像这样:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        FormUrlEncodedMediaTypeFormatter f;

        config.Formatters.Clear();
        config.Formatters.Add(new JsonMediaTypeFormatter());

        f = new FormUrlEncodedMediaTypeFormatter();
        f.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));

        config.Formatters.Add(f);
        // application/x-www-form-urlencoded ???
    }
}

为什么我会遇到问题:

没有 MediaTypeFormatter 可用于读取“String”类型的对象 来自媒体类型为“application/x-www-form-urlencoded”的内容。

完整的错误消息:

消息:“发生错误。”异常消息:“否 MediaTypeFormatter 可用于读取“String”类型的对象 来自媒体类型为“application/x-www-form-urlencoded”的内容。” 异常类型:“System.InvalidOperationException”StackTrace:“位于 System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent 内容、类型类型、IEnumerable1 formatters, IFormatterLogger formatterLogger) at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable1 个格式化程序、IFormatterLogger 格式化程序记录器)位于 System.Web.Http.ModelBinding.FormatterParameterBinding.ExecuteBindingAsync(ModelMetadataProvider 元数据提供程序、HttpActionContext actionContext、CancellationToken 取消令牌)位于 System.Web.Http.Controllers.HttpActionBinding.c__DisplayClass1.b__0(HttpParameterBinding 参数绑定器)位于 System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext() at System.Threading.Tasks.TaskHelpers.IterateImpl(IEnumerator1 枚举器,CancellationToken(取消令牌)”

请求头:

User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.103 Safari/537.36
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
Content-Type: application/x-www-form-urlencoded 
Accept: */*
Accept-Encoding: gzip,deflate
Accept-Language: he-IL,he;q=0.8,en-US;q=0.6,en;q=0.4

响应头:

缓存控制:无缓存 Pragma:无缓存内容类型: 应用程序/json; charset=utf-8 过期:-1 服务器: Microsoft-IIS/8.0 X-AspNet-版本:4.0.30319 X-Powered-By:ASP.NET 日期:2014 年 9 月 8 日星期一 18:06:10 GMT 内容长度:1111

我该如何解决这个问题?

谢谢 :)


您只需要将新的媒体类型添加到支持的格式列表中即可:

f = new FormUrlEncodedMediaTypeFormatter();
f.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
f.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/x-www-form-urlencoded"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC 4 - 使用post方法 的相关文章

随机推荐

  • 我该如何避免 NullPointerException?

    我试图通过从客户端向服务器发送密钥和随机数来验证用户身份 我的代码没有向我显示客户端的响应 当我执行如下代码时 出现空指针异常 import java io import java net import java lang class Cl
  • 在 Symfony2 (Doctrine) 和 MySQL 中启用微秒

    我有一个具有一列 日期时间 类型的实体来存储时间戳 ORM Column type datetime protected timestamp 我有 MySQL 5 5 40 我发现它不存储微秒 所以我切换到 5 6 21 并导入了所有表格和
  • WordPress、PHP、URL 编码问题

    Wordpress 提供了一个名为 the permalink 的函数 您猜对了 在帖子循环中返回给定帖子的永久链接 我正在尝试对该永久链接进行 URL 编码 当我执行此代码时 它以 HTML 形式生成以下结果 http
  • Rails 资产管道不包括 application.js 清单中所需的文件

    Rails 资产管道不包含 application js 中所需的文件 呈现给浏览器的唯一 javascript 文件是 application js 并且 require 行未编译为包含应有的标签 This is a manifest f
  • 多个 log4j.properties 文件

    这似乎不是一个有效的问题 但我在这里有一个要求 以下是我的项目结构 common built as a jar module 1 war includes common jar in its classpath module 2 war i
  • 为什么我的谷歌图块在 Cartopy 地图中看起来很差?

    我对用 Cartopy 渲染谷歌图块有点困惑 与标准的谷歌地图相比 该地图看起来非常糟糕 示例 代码来自https ocefpaf github io python4oceanographers blog 2015 06 22 osm ht
  • 如何查找:每列中的第一个非 NaN 值是否是 DataFrame 中该列的最大值?

    例如 0 1 0 87 0 NaN 1 NaN 99 0 2 NaN NaN 3 NaN NaN 4 NaN 66 0 5 NaN NaN 6 NaN 77 0 7 NaN NaN 8 NaN NaN 9 88 0 NaN 我的预期输出是
  • 计算图像 (M, N) 和模板 (3, 3) 之间的平方差和以进行模板匹配的更快方法?

    我正在实现一种纹理合成算法 如下所示here http graphics cs cmu edu people efros research NPS alg html 为此 我需要计算平方差之和 这是一个估计之间误差的指标template以及
  • 卸载顺序

    我可以找到卸载期间执行事件和部分的实际顺序吗 例如 将UninstallDelete发生早于usPostUninstall卸载步骤 Inno Setup 手册中有 安装顺序 一文 但它看起来更像是编译顺序 而不是执行顺序 卸载顺序与卸载顺序
  • 在没有按钮的 SwiftUI 中呈现新视图

    所以我想使用 SwiftUI 呈现一个新视图 而用户不必点击按钮 因为NavigationButton会用那个 这是一个例子 struct ContentView View var model Model var body some Vie
  • Google OAuth 2 PHP 调用用户信息

    我正在尝试使用 Google 的 OAuth2 API 在他们的通用文档中 他们提到了一个名为 UserInfo 的调用 http code google com apis accounts docs OAuth2Login html us
  • 更快的 MD5 替代品?

    我正在开发一个程序 可以在整个驱动器中搜索给定的文件 目前 我计算已知文件的 MD5 哈希值 然后递归扫描所有文件 寻找匹配项 唯一的问题是 MD5 在处理大文件时速度非常慢 是否有一种更快的替代方案可供我使用 同时保留极小的误报概率 所有
  • Vue 表 2 - 自定义过滤器

    我正在尝试使用这个https github com matfish2 vue tables 2 https github com matfish2 vue tables 2使用 Vue 2 1 8 它工作得很好 但我需要使用自定义过滤器根据
  • AWS EC2 实例调度器轻松实现

    我正在使用ec2进行开发 下班后浪费钱 创建一个每天早上 8 点自动启动 晚上 7 点结束的调度程序需要多少时间 我看过AWS提供的指南 但是有点困难 https aws amazon com ko answers infrastruct
  • 在 EF Core 中应用所有 IEntityTypeConfiguration 派生类

    有谁知道一种方法或有一个实现来应用派生自的所有类IEntityTypeConfiguration lt gt to the DbContext在运行时 似乎没有内置任何东西 需要通过以下方式手动加载每一个 protected overrid
  • protobuf-net 代码生成器

    我正在将 Google Proto Buffers 合并到我的项目中 Windows 的 protoc exe 生成用于序列化 反序列化的头文件和源文件的方式非常好 我需要 protobuf net 代码生成器 因此 例如 如果我有一个 P
  • 如何在 Zend 框架中检查完整的错误日志?

    我是采埃孚的新手 这是我的第一次测试 我正进入 状态 发生错误 发生错误 我的错误 phtml 是 h1 An error occurred h1 h2 h2 h3 Exception information h3 p b Message
  • 找不到模块:错误:与 webpack 捆绑时无法解析模块“模块”mongodb

    当我尝试在节点应用程序中使用 mongoose connect 时 Webpack 抛出以下错误 最初还有一些错误 例如 Module not found Error Cannot resolve module fs 在我的 webpack
  • 如何在没有服务器的情况下通过套接字连接两个Android设备

    我正在尝试开发一个Android应用程序 它可以在没有服务器的情况下与其他设备进行点对点连接交换数据 所以请建议我该怎么做 先感谢您 这是一个无需服务器的 SocketProgramming 聊天的完整代码 在我的应用程序中 首先您是客户端
  • ASP.NET MVC 4 - 使用post方法

    在 Visual Studio 2010 中 我使用 ASP NET MVC 4 创建 Web api 项目 如本示例所示 https www youtube com watch v H9vBxAH4f5E https www youtub