Сайт MVC использует относительные пути для ссылок вместо синтаксиса представления - PullRequest
1 голос
/ 08 апреля 2009

РЕДАКТИРОВАТЬ !! Я должен добавить, что этот сайт работает идеально локально. Эта проблема возникает только при развертывании

ОРИГИНАЛЬНАЯ ПОЧТА:

У меня есть сайт, который я только что установил http://splattonet0.web704.discountasp.net/

Что отлично загружает индексное представление контроллера Home. Однако, когда кто-то щелкает ссылки слева, веб-сервер ищет относительные пути (например, E: \ web \ splattonet0 \ htdocs \ Home \ AboutMe), что неверно, поскольку домашняя папка, конечно, находится в папке с именем «Views» «

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

Мой код в шаблоне мастера для раздела ссылок выглядит следующим образом:

<div id="navContainer">
            <ul id="mainNav">
                <li><a href="/Home/Index" title="Home">Home</a></li>
                <li><a href="/Home/AboutMe" title="About Us">About Me</a></li>
                <li><a href="/Skills/Index" title="Skills">Skills</a></li>
                <li><a href="/Home/Resume" title="Resume">Resume</a></li>
                <li><a href="/Home/Experience" title="Experience">Experience</a></li>
                <li><a href="/Home/SitesIveDesigned" title="Websites I've developed">My Websites</a></li>
                <li><a href="/Home/References" title="References">References</a></li>
                <li><a href="/Home/Projects" title="Projects">Projects</a></li>
                <li><a href="/Home/Hobbies" title="Hobbies">Hobbies</a></li>
                ....etc
            </ul>
        </div>

У меня одна и та же проблема с предыдущим слешем и без него в свойстве href. Я решил оставить его там, так как мои другие сайты (которые работают!) Стилизованы.

Может кто-нибудь пролить свет на это для меня? Спасибо!

ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ:

Меня попросили предоставить код с сайта MVC на этом сервере, который я написал, и это прекрасно работает. Код ссылки на другом сайте ( YorkCentre ) в том же стиле: <li><a href="/Controller/Action">text</a></li>

код:

<li><a href="/News/Index">Archived News</a></li>
<li><a href="/Home/BoardOfDirectors">Board Of Directors</a></li>
<li><a href="/Media/Index">In The Media</a>
...
</ul>

Ответы [ 3 ]

0 голосов
/ 08 апреля 2009

Если код одинаков в обоих местах, и проблема возникает только в одном месте, возможно, ответ лежит не в коде. Ниже приведены некоторые советы по устранению неполадок, которые могут помочь, поскольку я не знаю точно, в чем проблема, без дополнительной информации о двух средах.

Каковы платформы веб-сервера для вашей локальной среды и среды сервера? Вы используете Visual Studio и Cassini локально, а IIS удаленно? Если да, то какая версия IIS? Если нет, то какая платформа? В любом случае, правильно ли настроен целевой сервер?

Проверьте, правильно ли настроены ваши маршруты на целевом сервере. Это особенно верно, если ваш целевой сервер работает под управлением IIS6 - IIRC, IIS 6 требуется специальная справка по настройке для работы со стандартной маршрутизацией в ASP.NET MVC.

Если все вышеперечисленное не поможет вам отследить это, попробуйте скопировать его локально, создав новый сайт MVC и просто поместив в него существующие файлы. Посмотрим, удастся ли это или не получится.

У вас есть другие успешно выполняющиеся приложения ASP.NET MVC на этом сервере? Сравните их настройки с вашим новым сайтом.

0 голосов
/ 09 апреля 2009

Я решил проблему! В DiscountASP я изменил режим конвейера пула приложений с классического на интегрированный, в результате чего мои представления правильно отображаются.

0 голосов
/ 08 апреля 2009

/ Home / Index должен вызывать действие «Index» контроллера «Home», если вы используете маршруты по умолчанию. Тот факт, что «Home» находится в папке «Views», не имеет значения для MVC.

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