簡體   English   中英

[controller]在Web API controller的route屬性中是如何工作的?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM