WebMatrix Giving 404 с помощью UrlRouting - PullRequest
1 голос
/ 21 марта 2012

Я пытался перейти по этим двум ссылкам, чтобы узнать, как WebMatrix выполняет URL-маршрутизацию. http://www.mikesdotnetting.com/Article/165/WebMatrix-URLs-UrlData-and-Routing-for-SEO http://www.asp.net/web-pages/tutorials/working-with-pages/18-customizing-site-wide-behavior

Насколько я понимаю, что-то вроде http://localhost:44893/a/xyz

WebMatrix будет сначала для имени файла /a/xyz.cshtml, и если он не найден, он проверит /a.cshtml, а если он не найден, то проверит /a/default.cshtml.

Я создал пустой сайт в WebMatrix 2 Beta (3/5 Refresh). Я создал имя папки a и создал файл default.cshtml внутри.

Если я перейду на http://localhost:44893/a,, я получу страницу по умолчанию, но если я пойду на http://localhost:44893/a/xyz,, я получу

Ошибка HTTP 404.0 - Не найдено Ресурс, который вы ищете, был удален, изменилось его имя или временно недоступен

Модуль IIS Web Core Карта уведомленийRequestHandler Обработчик StaticFile Код ошибки 0x80070002 Запрашиваемый URL http://localhost:44893/a/xyz Физический путь C: \ Code \ Test \ a \ xyz Метод входа анонимный Войти Аноним пользователя

Есть что-то, чего мне не хватает, чтобы настроить это?

1 Ответ

1 голос
/ 25 марта 2012

Вы пропустили эту часть статьи:

Если во время поиска файлов совпадений не найдено, веб-страницы вместо этого попытайтесь найти документ по умолчанию. Два по умолчанию документы, которые работают, это default.cshtml и index.cshtml в этом порядок. Однако этот поиск выполняется один раз и предполагает, что URL-адрес целиком представляет собой путь к файлу и не содержит UrlData.

Встроенная система маршрутизации всегда предполагает, что URL представляет путь к файлу. Единственный раз, когда документ по умолчанию вступает в игру, это когда система уже определила, что / xyz.cshtml не существует, поэтому пытается определить, является ли xyz папкой, содержащей документ по умолчанию. Если файл / xyz / default.cshtml (или index.cshtml) не существует, дальнейшие попытки найти документ по умолчанию при попытке сопоставить этот конкретный URL-адрес с путем к файлу не предпринимаются.

...