2014-09-11 3 views
0

В настоящее время я работаю над проектом MVC4, который развертывается в среде размещения IIS6.Html.ActionLink не работает в производственной среде


Я использую Html.ActionLink() для создания ссылок на своей странице.

например:

@Html.ActionLink("Home Link", "Index", "Admin") 

Когда я запустить приложение локально (т.е. удара http://localhost:yyy), ссылка формируется в порядке:

<a href="/Admin/Index">Home Link</a> 

Когда я запускаю его в производственной среде однако:

<a href="">Home Link</a> 

Как вы можете видеть, ссылка не содержитСоздано.


Я думал, что это может быть проблема с маршрутизацией, но когда я пытаюсь посетить страницу в браузере: admin/edit/45, или один, используя пользовательский маршрут связывания: sf/24, обе эти работы тонкой; они направляют меня на страницу, которую я ожидаю.


Я довольно из идей и не уверен, как решить проблему.

Любая помощь, будет принята с благодарностью.

Спасибо,


Я добавил щедрот к этому, в надежде, что это может помочь получить ответ. Я подозреваю, что эта проблема может помочь другим, поскольку я, похоже, не делаю ничего слишком новаторского.


UPDATE 24/09/14

Это разрабатывается в VS2010 SP1, используя встроенный веб-сервер (Кассини?).

Затем я публикую (используя встроенные параметры Visual Studio) на сервере, на котором работает IIS6.

Структура каталогов содержит что-то подобное:

App_Start 
Assets 
Classes 
Content 
Controllers 
DomainModel 
Scripts 
Services 
SharedAssets 
ViewModels 
Views 

(т. Е ничего там совпадает имена всех ссылок).

В дополнение к этому, соединение, похоже, работает. например: @Scripts.Render("~/bundles/adminjs")

Используя это (VB) Razor:

@Html.ActionLink("View", "Display", "Form", New With { .id = 72 }, Nothing) 
<br /> 
@Html.RouteLink("View", "Default", new with { .controller = "Form", .action = "Display", .id = 72 }) 

я получаю следующий результат ..

В VS10/хром (местного):

<a href="/Form/Display/72">View</a> 
<br> 
<a href="/Form/Display/72">View</a> 

В IIS6/хром (сервер):

<a href="">View</a> 
<br> 
<a href="">View</a> 

..adding больше к тайне его не собирание маршрутов ..

+0

Вы размещаете сайт как виртуальный каталог? –

+0

Нет, сайт размещен как приложение в IIS –

+0

Это корневой сайт? –

ответ

1

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

+0

Следуя одному из ответов в этом сообщении, я позволил мне частично решить мою проблему, теперь я буду исследовать, чтобы полностью решить проблему. Когда я использовал «простой» маршрут (только с одним необязательным параметром), он работал отлично. Благодаря! –

0

IIS 6 не поддерживает приложения с интегрированным режимом. Here is a guide, как вы можете получить IIS для маршрутизации запросов к вашему приложению ASP.NET MVC. More guiding here.

Here is a great answer сравнение двух режимов, классических и интегрированных.

+0

Спасибо за это, я изо всех сил пытаюсь понять, если это проблема. Когда я напрямую обращаюсь к странице (например, '/ admin/edit/72'), ожидаемая страница отображается и работает. Что, по-видимому, не работает, это фактическое создание этих ссылок. –

+0

Хорошо, тогда эти вещи не связаны. Странные вещи. – Mads

Смежные вопросы