我想使用RoutePrefix,但ASP.NET部分忽略它。鑑於以下控制器(方法體和類字段刪除):ASP.Net Web API RoutePrefix部分被忽略
[RoutePrefix("api/users/sharepoint")]
public class SharePointController : ApiController
{
public SharePointController(ISharePointUserRepository repo, IAzureUserRepository otherRepo)
{
}
[HttpGet]
public ExternalUser Get(int id)
{
}
[HttpGet]
public ExternalUser Get(Guid guid)
{
}
[HttpGet]
public IEnumerable<ExternalUser> Get()
{
}
[HttpGet]
public ExternalUser Get(string username)
{
}
[HttpGet]
public IEnumerable<ExternalUser> GetByPersonalEmail(string email)
{
}
[HttpGet]
[Route("GetWithDifferences")]
public IEnumerable<ExternalUser> GetWithDifferences()
{
}
[HttpGet]
[Route("GetUnique")]
public IEnumerable<ExternalUser> GetUnique()
{
}
[HttpPost]
[Route("search")]
public IEnumerable<ExternalUser> Search([FromBody] ExternalUserSearchModel model)
{
}
我碰到下面的API(通過主機/幫助):
的SharePoint
獲取API /用戶/共享點/ GetWithDifferences
獲取API /用戶/共享點/ GetUnique
POST API /用戶/共享點/搜索
獲取API /的SharePoint/{ID}
獲取API /的SharePoint?GUID = {GUID}
獲取API /的SharePoint
獲取API /的SharePoint?用戶名= {名}
獲取API /的SharePoint?電子郵件= {電子郵件}
,當測試,按廣告方式工作。
正如你所看到的,當我沒有爲暴露的方法指定[Route(..)]時,RoutePrefix被忽略。不過,我希望對GET進行默認操作,所以我不想爲這些指定任何其他路由。
如何強制執行RoutePrefix,或者,如何使用[Route(..)]維護默認的GET和POST行爲?