2013-01-24 48 views
1

我有一個MVC應用程序和正在使用的路由/控制器/動作/編號MVC RouteConfig允許/Controller/Action.html

我想這還捕捉/Controller/Action.html作爲網址,並以及和點標準routeconfig到/controller/action也。

我正在使用我無法控制的jQuery庫,並且函數需要指向網頁或圖像的url。然而,它似乎並不理解沒有擴展名(.html,.php等)的結尾是指向html的鏈接並引發錯誤。

編輯:我試着作爲下面的評論者建議,仍然似乎無法得到它的工作。這是我的路由配置。

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

     routes.MapRoute("routeWithHtmlExtension", 
      "{controller}/{action}.html", 
      new { controller = "Home", action = "Index" } 
     ); 

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

該URL的工作原理:

http://localhost:14418/Album/Test 

這一個不:

http://localhost:14418/Album/Test.html 
+0

http://stackoverflow.com/questions/9331516/asp-net-mvc-routing-add-html-extension-to-routes –

回答

1

如果你設置以下的路線,它會工作:

routes.MapRoute("routeWithHtmlExtension", 
    "{controller}/{action}.html", 
    new {controller = "Home", action = "Index" } 
); 
+1

我瞭解默認路由的作品,首先進入到控制器,然後找到匹配params的匹配操作。我可以從默認項目中進入/ Home/Index,但在添加上面的代碼片段後,我無法進入/Home/Index.html = /。 – Kyle

+0

@ user1308743如果我是你,我會安裝Phil Haack的Routedebugger並進行調試。 http://stackoverflow.com/questions/1945027/any-url-routing-debugger-in-asp-net-mvc我已經測試了股票的ASP.NET MVC項目版本4的解決方案與默認的'互聯網應用程序'設置,所以我知道它的作品。 –

2

在web.config

<system.webServer> 
<modules runAllManagedModulesForAllRequests="true" /> 
... 
</system.webServer> 
+0

這在APS.NET MVC5中也完美適用於我。 –