2009-03-03 2 views
5

Упомянутый StackOverflow только в качестве примера, но если вы посмотрите выше URL для спроситьASP.NET веб-страницы без имен, например stackoverflow?

http://stackoverflow.com/questions/ask 

, что означает/задать подкаталог, но они также делают это для конкретных страниц вопросов. Как вы это кодируете в .NET?

Не вопрос кода как техника. Я знаю, что это хорошо для SEO, но как вы создаете сайт, чтобы каждая «страница» была его собственным каталогом? Динамически.

У вас есть шаблон или скрытая переадресация?

Как ?? :)

ответ

10

Это называется URL переписывания:

Url Rewriting with ASP.NET

MSDN: URL Rewriting in ASP.NET

EDIT: Как @Justice указывает, StackOverflow использует Routing.

+0

Если вы идете на нижний уровень, как насчет того, чтобы оставить комментарий о том, почему? –

+0

Я проголосовал, так как вы единственный, у кого есть правильный ответ. –

+0

Я тоже поддержал вас. Что с этими глупыми ответами о том, с чем строился SO? Ваш ответ напрямую отвечает на вопросы. – mezoid

1

Stack Overflow использует ASP.net MVC

MVC использует URL + Строка запроса для определения содержания, поэтому его не как URL, который указывает на конкретную страницу, но больше похоже на иерархическом пути к свойствам некоторых данных в будет отображаться

EG https://stackoverflow.com/users/[Put User ID Here]/[Добавить имя пользователя здесь]

предлагает веб-сайт отображать ПОЛЬЗОВАТЕЛЯ с идентификатором, указанным в пути (в данном случае имя пользователя, вероятно, просто для ударов), в отличие от определенной страницы, созданной только для этого пользователя.

+0

Плакат не спрашивал, на что написано СО. –

5

Stack Overflow был построен с использованием ASP.NET MVC, которая использует технологию, называемые маршрутизациями, см:

What Was Stack Overflow Built With?

и Routing

+0

-1 Вы полностью упустили точку вопроса. Он не спрашивал, как SO строится ... infact конкретно указано, что SO используется только в качестве примера. Его вопрос заключается в том, как переписать URL-адрес, чтобы он выглядел так, как будто это каталог ... и единственный правильный ответ до сих пор от Митча. – mezoid

+0

ОК, так что мой ответ не такой полный, как Mitch, и конкретно не упоминает о маршрутизации в соответствии с правосудием, однако он все еще отвечает на вопрос о том, как (по крайней мере, один путь) «создать сайт, чтобы каждая« страница »была его собственным каталогом " – mundeep

6

StackOverflow использует то, что называется маршрутизацией, который поставляется с .NET 3.5 SP1 , Маршрутизация - популярная функция ряда инфраструктур MVC, таких как ASP.NET MVC, Ruby on Rails и ряд фреймворков Python и PHP.

1

Я видел это, просто создав папку для каждой веб-страницы, а затем каждая папка содержит документ Default.aspx (Предполагая, что Default.aspx устанавливается как документ по умолчанию в IIS, который по умолчанию). Затем вы можете перейти к любой папке на сайте без указания страницы (Default.aspx).

Для динамической части я работал с системами CMS, которые делают это так, а страница Default.aspx просто наследуется от какого-либо основного шаблона, а система CMS использует рендеринг ASP.NET для динамического завершения веб-страницы.

Использование папок может быть немного тяжелым с структурой сайта, но это простой способ устранить имена страниц из браузера.

Вот как я структурирую свой сайт и избегаю использовать имена страниц ...например, http://www.innovaapps.net/Blog просто вызывает страницу default.aspx без указания имени страницы.