2014-01-20 3 views
0

Имя контроллера является: TestControllerAsp.net MVC маршрутизации - как разрешить расширение .html в MVC маршрутизации

Имя Действие: HtmlContent

и Адрес: локальный: 53907/en_US/Index.html

Я хотел бы назвать действие HtmlContent от TestController, если URL-адрес, содержащий расширение .html.

я поставил точку останова в HtmlContent, но его не ударять, если я вхожу URL, как упоминалось выше,

routes.MapRoute(
    name: "MyCustomRoute", 
    url: "en_US/{pagename}", 
    defaults: new { controller = "Test", action = "HtmlContent" }, 
    constraints: new {pagename = @".*?$(?<=\.html)" } 
); 

Как написать маршрутизации для этого требования?

+1

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

+0

Спасибо, что разрешил мою проблему. Код экспликации

ответ

0
routes.MapRoute(
     name: "MyCustomRoute", 
     url: "en_US/{pagename}", 
     defaults: new { controller = "Test", action = "HtmlContent" } 
     constraints: new {pagename = @"(.*?)\.(html|htm)" } 
      ); 

Примечание я добавил HTML и HTML, чтобы показать вам, как использовать или выражение

+0

Замените маршрутизация с шахтой –

0
routes.MapRoute(
name: "MyCustomRoute", 
url: "en_US/{pagename}.html", 
defaults: new { controller = "Test", action = "HtmlContent" }, 
constraints: new {pagename = @".*?$(?<=\.html)" } 

);

и добавить код на web.config

<add name="HtmlFileHandler" path="*.html" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 

свою работу для меня, если любой запрос .please комментарии

Смежные вопросы