如何在URL中获取ID

时间:2016-01-18 17:59:11

标签: c# asp.net-mvc-4

我想将url中的id绑定到我的FromBody对象。这是我的代码:

/**
 * @Security("has_role('ROLE_USER')")
 */

我的CustomRecallDraft对象中有[HttpPost] [Route("draft/{id:int}/save")] public IHttpActionResult SaveCustomRecallDraft([FromBody] CustomRecallDraft request) { return Ok(); } 属性。但是当我发出web请求时,id字段为null。它是一个可以为空的id。这是我的替代代码

id

此代码有效。 id字段不为null。但是如何绑定到CustomRecallDraft对象中的id字段。我不想要两个参数。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你想要这样的东西:

[HttpPost]
[Route("draft/{id:int}/save")]
public IHttpActionResult SaveCustomRecallDraft([FromBody] CustomRecallDraft request)
{
  //request.id is the {id:int} from the uri
  return Ok();
}

基于我已阅读的有关属性路由的所有文档(例如,herehere),无法完成。

您可以做的最好是使用FromUri参数,并设置request.id = id。或者只是强制他们都是一样的。

答案 1 :(得分:0)

您可以为CustomRecallDraft编写自定义模型Binder,但这可能是一种过度杀伤......但