2012-09-05 133 views
0

我有新的.NET WebAPI啓動並正在運行,並且我正在嘗試向我的項目添加一條新路由,以便我可以看到SettingsController正在運行。我已將我的路線添加到RegisterRoutes方法中的Global.asax文件,但當我嘗試瀏覽到sampleUrl:12345/settings/index時,我收到了404錯誤。我能夠看到:sampleUrl:12345/home/index沒有問題。ASP.NET WEBAPI添加自定義路由

的Global.asax

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapHttpRoute(
     name: "DefaultApi", 
     routeTemplate: "api/{controller}/{id}", 
     defaults: new { id = RouteParameter.Optional } 
    ); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

    routes.MapRoute(
     name: "Settings", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Settings", action = "Index", id = UrlParameter.Optional } 
    ); 
} 

我需要在我的SettingsControllerActionResult Index()

回答

2

您的設置路線是多餘的。您可能缺少的是設置控制器中的索引方法。

+0

好的,所以從Global.asax中刪除設置的路由。我在我的Views文件夾中有一個名爲Settings的文件夾,該文件夾中有一個Index.cshtml文件。你是這個意思嗎? – brianhevans

+0

對於Web API,您需要在SettingsController中實現Index方法.. –

+0

我有一個默認執行的ProductsController。這工作沒有問題。 ProductsController中沒有Index方法。然而,HomeController中有一個。我正在使用WebAPI啓動器項目。 – brianhevans