Веб-страницы ASP.NET без имен, такие как stackoverflow? - PullRequest
5 голосов
/ 03 марта 2009

Упомянутое переполнение стека только в качестве примера, но если вы посмотрите выше, URL для запроса -

http://stackoverflow.com/questions/ask

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

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

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

Как ?? :)

Ответы [ 5 ]

10 голосов
/ 03 марта 2009

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

Перезапись URL с помощью ASP.NET

MSDN: перезапись URL в ASP.NET

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

6 голосов
/ 03 марта 2009

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

5 голосов
/ 03 марта 2009

Переполнение стека было построено с использованием ASP.NET MVC, в котором используется метод под названием Routing, см .:

Из чего построен переполнение стека?

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

1 голос
/ 03 марта 2009

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

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

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

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

1 голос
/ 03 марта 2009

Переполнение стека использует ASP.net MVC

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

например. https://stackoverflow.com/users/[Put Идентификатор пользователя здесь] / [Введите имя пользователя здесь]

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

...