我有一个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