【发布时间】:2018-01-30 13:30:46
【问题描述】:
我是 C# 新手。我尝试使用 int 创建一个邮政服务。所有获取和邮政服务都工作正常。
但是当我将参数传递给发布服务时,它始终为空。但是在创建一个类之后它工作正常。我们可以将直接 int 传递给服务,还是必须为它创建一个模型类?
[System.Web.Http.HttpPost]
public IHttpActionResult GetUserByID(int id)
{
var user = userList.FirstOrDefault((p) => p.Id == id);
if (user== null)
{
return NotFound();
}
return Ok(user);
}
但它总是发送 0 。但是当我创建一个类并将该 int 添加为属性时,它工作正常。
工作代码
[System.Web.Http.HttpPost]
public IHttpActionResult GetUserByID(data id)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
return Ok();
}
public class data
{
[Required]
public int id { get; set; }
}
编辑
我的标题准确吗?
【问题讨论】:
-
Content-Type设置正确,我会删除Accept-Charset和User-Agent因为它们不需要解决这个特定问题。更重要的是您在请求正文中发送的内容,您发送的对象是包含键/值对{ "id": "1" }中的 id 还是仅包含 id,例如1(这是您应该发送的内容)- 也许将您发送的内容发布在上面屏幕截图的 Body 选项卡上。 -
我都试过了,但我得到的所有原始数据类型都是 null 。我尝试将我的 id 更改为字符串并将它们转换为 int。把字符串也给他们的空了。
-
我看不出
id怎么可能是null,它是一个int,它是一个值类型,如果没有明确设置,它至少会采用默认值0,确定吗?
标签: c# web-services asp.net-web-api