0

玩弄 Web.API 2.0 的东西——尤其是属性路由。文档声明您可以按照惯例拥有属性路由和 1.0 路由......但这两者似乎不能很好地结合在一起。例如,给定这两种方法:

public override HttpResponseMessage PutModel(SampleForm form)

[HttpPut("approvesampleform/{form}")]
public string ApproveSampleForm([FromBody]SampleForm form)

虽然我可以http://localhost/api/sampleform/approvesampleform很好地调用,但 aPUThttp://localhost/api/sampleform/产生Multiple actions were found that match the request错误。

如果一个方法被标记为属性路由,有什么方法可以被约定忽略?这将是理想的......但我在文档中看不到任何方法来实现这一点。

注意:我没有看到 asp.net-web-api-2 标记。也许拥有超过 1500 个代表的人可以创建它?

4

1 回答 1

1

对,RC(Release Candidate)没有传统路由无法访问属性控制器/动作的逻辑。这种变化发生在 RC 之后。您正在尝试的场景在后 RC 位中可以正常工作。

您提到的文档可能不是很清楚,但我认为它们意味着您可以让基于属性和约定的控制器并排工作,而不是特别在同一控制器中混合属性和传统语义。

暂时您可能只能对上面提到的控制器使用属性路由。

于 2013-09-23T17:11:12.580 回答