我有一個web API,我想添加一些asp.net頁面來管理API的各個方面。如何在ASP.NET WebAPI項目中使用MVC路由
在WebApiConfig.cs文件中,我有幾條路由,下面是我用來捕獲API的所有路由。
config.Routes.MapHttpRoute(name: "CatchAll",routeTemplate: "{controller}/{action}/{id}",defaults: new { id = RouteParameter.Optional });
我想添加一個新的部分,前綴爲/控制推到事物的asp.net端。要做到這一點,我添加了以下到RouteConfig.cs
routes.MapRoute(
name: "Default",
url: "control/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我已經加入,我將用它來管理事物的標準控制器。
public class ManageController : Controller
{
public ActionResult Index()
{
return Content("Works");
}
}
當我在瀏覽器中訪問/控制/管理我收到以下錯誤。
沒有類型被發現,名爲「控制」
它看起來像路線被完全繞過或者在最好的,包羅萬象的從API路線追趕它,並給它的控制器匹配優先。有沒有辦法讓我的請求抓住這條路線,而不必創建一個單獨的項目?
如果在單獨的控制器上使用'[RoutePrefix]'屬性,它將工作。它不會是一個通用的解決方案,但如果您只有某些路線嵌套在控制之下,它會更有意義。僅供參考,根據您使用的ASP.NET版本,該屬性可能是'[Route]'。 – Carson