как сделать ASPX веб-страницы без расширений файлов? - PullRequest
6 голосов
/ 15 июля 2009

Я заметил, что stackoverflow.com не имеет расширений файлов на своих страницах. Как бы я это сделал на веб-сайте aspx?

Ответы [ 6 ]

7 голосов
/ 15 июля 2009

Вот отличная статья Скотта Гатри:

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

Он охватывает все сценарии: IIS 6, IIS7, использование сторонних инструментов перезаписи URL и т. Д.

6 голосов
/ 15 июля 2009

MVC

Они используют MVC

6 голосов
/ 15 июля 2009

URL-адреса на самом деле не указывают на файлы. Они используют правила перезаписи URL-адресов для преобразования URL-адреса в запрос к базе данных и передачи результатов обратно на указанную страницу (чей URL-адрес не отображается).

Редактировать: Для уточнения SO использует MVC, поэтому URL-адрес указывает на конкретное действие контроллера (с параметрами или без, в зависимости от страницы). Действие запускает некоторый код для захвата данных или чего-либо еще и передает их в соответствующее представление, которое в основном представляет собой HTML-шаблон, который заполняет информацию, предоставленную действием, и отображает страницу.

5 голосов
/ 15 июля 2009

Переполнение стека использует ASP.NET MVC, который чистит URL-адреса из коробки.

По сути, вам нужно что-то, что берет чистый URL, а затем сопоставляет его со стандартным .NET URL с передачей дополнительных «каталогов» в качестве параметров. например переписывание / blog / post-no-one в /blog.aspx?id=post-no-one.

В новом IIS есть плагин для перезаписи, который сделает это за вас, если вы захотите сделать это с традиционным ASP.NET:

.

Использование модуля перезаписи URL

Или вы можете свернуть свой собственный, переопределив HttpModule и сделав там переписывание. Вот сложный пример этого:

Механизм перезаписи URL

2 голосов
/ 15 июля 2009

Как уже упоминали несколько человек, SO использует механизм маршрутизации URL, включенный в MVC. Они фактически сделали код доступным через CodePlex, так что вы можете использовать его на веб-сайте ASP.NET на основе веб-форм.

У Фила Хаака есть краткое описание того, как это сделать:

Маршрутизация с WebForms

Он включает образцы, ссылки и т. Д., Которые помогут вам начать работу.

0 голосов
/ 04 июня 2014

Если вы все еще хотите использовать ASP.Net без использования маршрута MVC (MVC - это круто, кстати), вы можете направлять запросы с помощью обработчика HTTP.

http://msdn.microsoft.com/en-us/library/ms227675(v=vs.100).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...