当前位置: 首页 > 知识库问答 >
问题:

如何在WebAPI中绑定模型(比如mvc)?

喻增
2023-03-14

我的Html代码是这样的。

<input type="text" name="Id" value="123"/>
<input type="text" name="Name" value="XYZ"/>
<input type="text" name="Abc.Address" value="ABC,XYZ 700567"/>
<input type="text" name="Abc.Mobile" value="6958743216"/>

课程:-

class A
{
    public string Id { get; set; }
    public string Name { get; set; }
    public Abc Abc { get; set; }
}

class Abc
{
    public string Address { get; set; }
    public string Mobile{ get; set; }
}

当我调用MVC控制器时,通过上层输入,绑定就发生了。以下方法的方法

public ActionResult Post(A x)

x中的值是

x.Id="123"
x.Name="XYZ"
x.Abc.Address="ABC,XYZ 700567"
x.Abc.Mobile="6958743216"

但是当我在web api中尝试同样的事情时,它给了我415(不支持的媒体类型)。方法如下

public IHttpActionResult Post(A x)

它没有绑定,而是给出了415状态代码,上面写着不支持的媒体类型。我知道这么问很蠢但为什么会这样?如果我想做相同的绑定发生在mvc如何实现?我不想做这样的事

有没有办法做到这一点?

共有1个答案

冷越泽
2023-03-14

它与请求的内容类型有关。

您的WebAPIendpoint希望您的post请求具有内容类型应用程序/json。一旦您添加,它将被接受。

但是,如果您想将HTML表单发布到控制器,则不应使用WebAPI。如果必须,那么可以序列化表单并使用javascript提交表单

 类似资料:
  • 本文向大家介绍如何在Razor页面中实现数据模型绑定?相关面试题,主要包含被问及如何在Razor页面中实现数据模型绑定?时的应答技巧和注意事项,需要的朋友参考一下 使用bindproperty属性。  

  • 我有一个ASP。NET核心Web APIendpoint,它接受(FromBody)下面定义的搜索对象 因此...如果我将以下JSON发布到我的endpoint {“pageSize”:10,“query”:{“fieldId”:“body”,“value”:“cake”,“operator”:“matches”} 我成功地获取了一个搜索对象,但查询属性的类型是Expression,而不是Matc

  • 我在我的一个API控制器上有一个POST方法,它采用单个字符串值: 我在这里发布的帖子请求正文如下: (例如,这是一个常规的HTTP POST,您可以通过提交浏览器表单以及使用HTTP客户端来启动) 在WebAPI的候选版本中,这已经悄无声息地停止了工作——它只是不再绑定foo。为了让代码正常工作,我不得不用以下方法替换该方法: 这是可行的,但它有点混乱,比以前的版本涉及更多的管道测试。 我是否错

  • 问题内容: ASP.NET Web API团队已决定将JSON.NET库用于模型绑定JSON数据。但是,“常规” MVC控制器仍使用劣质的JsonDataContractSerializer。这会导致解析日期出现问题,并使我非常头疼。 请参阅此作为参考:http : //www.devcurry.com/2013/04/json-dates-are-different-in-aspnet- mvc

  • 问题内容: 起作用但是 没有。 我无法在python中绑定+ 。是否有所有可能按键的文档? 问题答案: 用途: 我没有指向这些事件名称的完整列表的链接。这是我收集的部分清单:

  • 问题内容: 我认为这在几个月前就可以解决了。常规命令行泊坞窗: 可以正常工作,但是我无法在docker-py中工作: ..总是告诉我,新的不存在。应该如何使用docker-py完成? 问题答案: 以下是进行卷绑定的当前工作方式: