为什么这个MVC路线不起作用?

Bob*_*tel 5 c# asp.net-mvc asp.net-mvc-routing

我在RouteConfig类中定义了以下路由:

       routes.MapRoute(
             name: "DefaultMessage",
             url: "API/{action}",
             defaults: new { action = "MessageGateway" }
         ); 
        routes.MapRoute(
              name: "DefaultNoParms",
              url: "{controller}/{action}",
              defaults: new { controller = "API", action = "Login" }
         );
Run Code Online (Sandbox Code Playgroud)

当我在localhost上使用localhost:65133 /测试这个作为地址时,我被路由到APIController上的Login ActionResult,但是当我尝试localhost:65133/API时,我收到以下错误:

匹配的路由不包含"控制器"路由值,这是必需的

谁能告诉我有什么问题?ActionResult MessageGateway确实存在......

Joe*_*nos 11

似乎错误是不言自明的 - 您需要告诉它要去哪个控制器.

routes.MapRoute(
    name: "DefaultMessage",
    url: "API/{action}",
    defaults: new { controller = "API", action = "MessageGateway" }
); 
Run Code Online (Sandbox Code Playgroud)

  • 是的,具体来说,错误是你没有在默认值或路由中指定控制器. (2认同)