ASP.NET Web API 2 - 如何开机自检
ASP.NET Web API 2 - how to POST?
我已经使用基架为 Web API ASP.NET 2 生成了一个控制器类。
我想从浏览器发布一个对象。这是生成的运行方法:
// POST: api/MyObjects
[ResponseType(typeof(MyObject))]
public async Task<IHttpActionResult> PostMyObject(MyObject myObject)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.MyObjects.Add(myObject);
try
{
await db.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (MyObjectExists(myObject.Id))
{
return Conflict();
}
else
{
throw;
}
}
return CreatedAtRoute("DefaultApi", new { id = myObject.Id }, myObject);
}
我正在尝试从javascript/jquery调用它:
$.post("http://localhost:2239/api/UrlVisits/5", "=" + "something");
我的问题是,我应该为"something"
正确序列化它输入什么?输入方法时,myObject
是所有字段都设置为 null 的有效对象。我不知道此序列化在堆栈中的哪个位置发生,因此我不确定如何修改我的post
来修复它。
您需要稍微
更改一下结构。
首先,/5 表示 ID 为 5,这对于方法期望的复合对象没有意义。
其次,您无需使用"="手动指定任何 URL 参数化。 如果你正确地构建了对象,jQuery和WebAPI都会为你处理这些部分。WebAPI 2 在反序列化复杂对象方面比其前身强大得多。 只需发布对象即可。
$.post("http://localhost:2239/api/UrlVisits", {id:1, name:"test name"});
最后,您可以使用 [FromBody]
属性指定对象将发布在表单正文上。
[ResponseType(typeof(MyObject))]
public async Task<IHttpActionResult> PostMyObject([FromBody]MyObject myObject)
相关文章:
- 开机自检无法正常工作,出现错误
- 类型错误:无法读取开机自检后未定义的属性“正文”(平均值)
- 在 AngularJS 和 CodeIgniter3 中开机自检数据时出现 CORS 错误
- html 开机自检数据未发送
- 快递.js开机自检空要求正文
- 取消选中通过开机自检 [] 中的回显选中的复选框
- 通过开机自检将 XML 发送到另一台服务器
- 控制器中的 MVC3 自动完成和开机自检方法
- 角度 UI 模式开机自检
- 控制器操作参数未从 AJAX 开机自检正确填充
- 王牌编辑器 - 通过开机自检在服务器上保存/发送会话
- ASP.NET Web API 2 - 如何开机自检
- 无法向服务器发送开机自检请求
- 在没有插件的情况下验证验证码?-- 跨服务器开机自检
- 默认$resource开机自检数据
- 尝试开机自检“选择”HTML表单输入时出现PHP错误
- 开机自检时重定向
- JSON 数组导致开机自检后出现额外的括号
- 春季开机自检未返回有效号码
- 如何在开机自检前操作表单文件输入