Что не так с этой настройкой маршрутизации Global.asax?

Возможно, я слишком многого ожидал от ASP.NET, но в Apache тривиально переписать URL-адреса, поэтому запросить что-то вроде: http ://mysite/myfolder/mypage/niceurlparameter на самом деле удается обслуживать статическую страницу http ://mysite/mypage.html

Как мне это сделать в Global.asax?

Я пробовал это :

RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}/*", "~/myfolder/{page}.html");

, но он продолжает возвращать 404, когда я запрашиваю http ://mysite/myfolder/mypage/niceurlparameter .

Тем не менее, это работает :

RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}.html/*", "~/myfolder/{page}.html");

, поэтому я получаю mypage.html при запросе http ://mysite/myfolder/mypage.html/niceurlparameter .

Я просто хочу избавиться от части «.html» в своих URL-адресах. Что мне не хватает?

ОБНОВЛЕНИЕ :По какой-то причине в предыдущем случае подстановочный знак '*' не был принят.

Изменение на :

RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}/{whatever}", "~/myfolder/{page}.html");

, кажется, направляет запрос на html-страницу, но затем я получаю сообщение об ошибке:

There is no build provider registered for the extension '.html'. 

Почему в мире это просто сработало бы в первом случае (с html в URL-адресе )и не когда html не учитывается?

5
задан tishma 27 April 2012 в 11:16
поделиться