веб-развертывание URL-пути, MVC - PullRequest
0 голосов
/ 28 июня 2011

При развертывании приложения mvc у меня возникают проблемы с правильной работой моих путей при перемещении между страницами (представлениями).

По сути, в моей среде разработки моей целевой страницей является localhost: 1910 /, тогда как при ее развертывании моей целевой страницей является localhost / ITSMngr.

Поэтому во всех моих ссылках постоянно отсутствует раздел ITSMngr. например, если у меня есть ссылка, такая как:

<a href="/DataBaseMng/Edit?id=@signData.SignDataId" >

где DataBaseMng - это имя контроллера, а Edit - это действие, оно отлично работает в моей среде разработки, поскольку в конечном итоге оно сопоставит его с localhost / DataBaseMng / Edit? Id = 2 или чем-то другим. В то время как при развертывании он будет пытаться сопоставить с тем же путем, но не будет работать, потому что пропускает раздел ITSMngr. то есть он должен отображаться в localhost / ITSMngr / DataBaseMng / Edit? id = 2

Есть ли способ установить это где-нибудь по умолчанию, чтобы он всегда включал в меня ITSMngr? Я попытался изменить маршруты маршрутов в Global.asax.cs, но это не сработало - не то, чтобы я был на 100% уверен, что я делаю это правильно.

Удаление / в начале моих ссылок будет работать один раз, но когда вы вернетесь обратно, все его внутренние пути будут сняты, и это может привести к потере

1 Ответ

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

В приложении MVC вы должны использовать встроенные функции для генерации URL-адресов вместо жесткого их кодирования. Это должно позаботиться обо всем за вас и использовать маршруты, определенные в вашем global.ascx

Вместо:

<a href="/DataBaseMng/Edit?id=@signData.SignDataId" >

Использование:

<a href="@Url.Action("Edit", "DataBaseMng", new { id = signData.SignDataId })" >

Если вы хотите сослаться на что-либо, используя Url, а не вспомогательный метод Action (не рекомендуется), используйте:

@Url.Content("~/DataBaseMng/Edit?id=" + signData.SignDataId.ToString())

Обратите внимание, что ~ asp .net будет сопоставляться с тем местом, где вы установили приложение

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