ASP.NET MVC 3, IIS7, 404 Ошибка, неправильная маршрутизация? - PullRequest
0 голосов
/ 28 июля 2011

Я новичок в ASP.NET MVC 3, поэтому извините, если мои данные немного мутные.Я пытаюсь опубликовать свое веб-приложение на сервере здесь.Я работаю в IIS 7, настроен на интегрированный, и я могу нормально попасть на домашнюю страницу приложения.Тем не менее, некоторые ссылки удаляют каталог из URL.Пример:

URL домашней страницы: http://localhost/CMS/ - вы попадете на первый экран со ссылками на «Контракт», «Заказчик» и «Сотрудник».Нажав на одну из них, вы попадете на ...

http://localhost/CMS/Contract (или что вы выберете.) Оттуда оно разбито на различные категории.Одним из них является «Создать контракт».Вот проблема, с которой я столкнулся: этот URL указывает на

http://localhost/Contract/Create - полностью исключая часть CMS и выбрасывая 404. Я могу добраться до нее, вставив CMS обратно внутрь, и эти страницы перенаправляютсяправильно.

Что может быть не так?Дайте мне знать, если вам нужна дополнительная информация по любому из моего кода или что-то еще.

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

Вы можете определить альтернативный контроллер в маршруте, чем вы ожидаете

routes.MapRoute("Contract", "Contract/{action}",
    new { controller = "cms", action = "index" }
);

и вы должны создавать такие ссылки на своих страницах

<%=Html.ActionLink("Contract", "create", "cms") %>

вместо того, чтобы делать это по старинке, как

<a href="<%=ResolveUrl("~/Contracts/Create") %>">Contracts</a>

с какой стороны выполняется маршрутизация.


Похоже, вам не нужны дополнительные маршруты, но вам нужно правильно создавать ActionLinks, используя HtmlHelper

0 голосов
/ 28 июля 2011

Когда вы используете ваши пути к действиям контроллера, вам нужно использовать @Url.Action("action", "controller"); вместо простого "action\controller". Смотрите пример http://codetuner.blogspot.com/2011/07/jquery-post-url-problems-in-iis-hosted.html

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