无法在WebAPI2方法上定义`Name`属性

时间:2014-08-19 11:42:58

标签: asp.net asp.net-web-api2 asp.net-web-api-routing

在Mike Wasson的WebAPI2 tutorials中,路线的Name属性明确定义如下:

public class BooksController : ApiController
{
    [Route("api/books/{id}", Name="GetBookById")]
    public BookDto GetBook(int id) 
    {
        // Implementation not shown...
    }
}

然而,当我在我自己的代码中尝试这个时(虽然是VB)我可能会出错:

  

输入'名称'未定义

我的方法有什么问题吗?

VS error details

2 个答案:

答案 0 :(得分:2)

您使用的语法将允许multiple attributes。这会导致编译器认为您要使用不存在的NameAttribute

删除路径字符串后的右括号并使用“pascal赋值运算符”:=

<Route("api/books/{id}", Name:="GetBookById")>

Attributes (C# and Visual Basic)所示。

答案 1 :(得分:1)

Intellisense救援!! 不要使用Name属性名称:

<Route("test/{cid}", "nameofroute", 0)>
Public Function [Get](cid As Int32)

End Function