[英]ASP.NET Web API controller with attribute routing doesn't work without a route name
[英]How does [controller] work in route attribute of Web API controller?
考慮這個代碼片段:
[ApiController]
[Route("api/[controller]")]
public class HotelsController : ControllerBase
{
}
我知道將[controller]
放在路線中會使 URL 只是api/hotels
。 我的問題是它是怎么做到的? 它是否需要整個字符串並切斷方括號中的部分(在本例中為“控制器”)? 因此,我可以調用 class HotelsClass
並將[class
] 放在路線中,它會完成相同的操作。 或者,它是否總是必須是[controller]
並且它只識別特定模式?
我嘗試了第一種方法,希望它能以同樣的方式工作,但在我的應用程序中它映射控制器時出現錯誤,所以我想我會要求清楚。
編輯:我知道 class 應該以Controller
結尾,我不反對該約定。 我只是對[controller]
令牌的底層機制及其工作方式感到困惑,並且不想在不知道它為什么這樣做的情況下盲目使用某些東西。
MVC 和 WebAPI(基本上是沒有 V 的 MVC)依賴於許多約定。 一種約定是控制器的名稱總是以“Controller”結尾。 甚至沒有充分的理由想要打破這個慣例,更不用說實際去做了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.