MVC RouteConfig允许/Controller/Action.html

时间:2013-01-24 01:21:46

标签: asp.net-mvc asp.net-mvc-routing

我有一个MVC应用程序,并使用路由/ Controller / Action / Id

的标准routeconfig

我希望它另外捕获/Controller/Action.html作为网址,同时也指向/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 }
        );
    }
}

此网址有效:

 http://localhost:14418/Album/Test

这个没有:

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

2 个答案:

答案 0 :(得分:2)

在web.config中

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

答案 1 :(得分:1)

如果您设置以下路线,它将起作用:

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