【问题标题】:Cannot define `Name` attribute on WebAPI2 method无法在 WebAPI2 方法上定义“名称”属性
【发布时间】:2014-08-19 11:42:57
【问题描述】:

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

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

但是,当我在自己的代码(尽管是 VB)中尝试此操作时,会出现错误:

类型“名称”未定义

我的方法有什么问题吗?

【问题讨论】:

  • 尝试删除它,afaik 它只是路线的名称,它不需要工作。
  • 如果只有... :-/ 我需要名称来动态创建返回到其他方法的 URI
  • 大声笑像我们其他人一样使用 C#!对不起,那没有帮助,不知道vb

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


【解决方案1】:

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

去掉路由字符串后的右括号,使用“pascal赋值运算符”:=

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

Attributes (C# and Visual Basic)所示。

【讨论】:

  • 太好了,谢谢。我选择接受马特的回答,因为他在几秒钟前发布了。
【解决方案2】:

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

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

End Function

【讨论】:

  • 干得好。谢谢。是的,我同意你对 C# 的看法。我希望十年前我开始使用 ASP.NET 时就选择了它,但我的经典 ASP 技能是 VB,所以它很容易过渡。虽然它在我的待办事项清单上......
猜你喜欢
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 2017-02-06
  • 2015-10-16
  • 2021-06-26
相关资源
最近更新 更多