Правило модуля перезаписи URL-адресов IIS для aspx

мой вопрос прост и, вероятно, задан, у меня есть веб-сайт www.alovine.com и URL-адрес www.alovine.com/registration.aspx. теперь я хочу, чтобы люди могли открывать страницу, когда они вводят www.alovine.com/registration, то есть без «.aspx» в конце.

я искал его и не мог найти ответ. я попытался изменить в webconfig, используя это:

<rule name="Rewrite ASPX">
    <match url="registration" />
    <action type="Rewrite" url="registration.aspx" />
  </rule>

person user3194517    schedule 14.01.2014    source источник
comment
люблю это здесь .com/knowledge_center/article/, я не уверен, как это сделать, я использую Visual Studio 2013, кстати   -  person user3194517    schedule 14.01.2014
comment
Я вижу, что вы используете правила перезаписи URL-адресов IIS. Возможно, спросите об этом на forums.iis.net/1152.aspx. В противном случае это вопрос об ошибке сервера, а не о переполнении стека. .   -  person John Saunders    schedule 14.01.2014


Ответы (1)


Вставьте этот код в свой Global.asax:

routes.MapPageRoute("", "{registration}", "~/registration.aspx");

С приведенным выше кодом ваша ссылка будет выглядеть так:

http://localhost:12345/alovine/registration

Надеюсь это поможет!

person felipekm    schedule 14.01.2014
comment
спасибо за быстрый ответ, но куда положить файл global.asax?? В приложении.старт?? - person user3194517; 14.01.2014
comment
он говорит Ошибка 3 Имя «маршруты» не существует в текущем контексте C:\Users\Ajiteesh\Desktop\Web\Vine\WebSite3\Global.asax 8 9 WebSite3 - person user3194517; 14.01.2014
comment
Вам нужно создать экземпляр RouteCollection, чтобы использовать переменную маршрутов, вот хорошая тема для этого: stackoverflow.com/questions/11704745/ - person felipekm; 14.01.2014
comment
Кроме того, не забудьте включить Web.Http и Web.Routing в операторы использования. - person felipekm; 14.01.2014
comment
Эй, Феликс, ценю вашу помощь, но не понимаю этот метод, по его словам, он решил его с помощью Page.RouteData.Values[combinedPin], но как мне использовать это в моем контексте? - person user3194517; 14.01.2014
comment
Ошибка 3 Не удалось найти имя типа или пространства имен «RouteCollection» (вы пропустили директиву using или ссылку на сборку?) C:\Users\Ajiteesh\Desktop\Web\Vine\WebSite3\Global.asax 4 39 WebSite3 - person user3194517; 14.01.2014
comment
я сделал это public static void RegisterRoutes (маршруты RouteCollection) { route.MapPageRoute (, {registration}, ~/registration.aspx); } - person user3194517; 14.01.2014
comment
куда поставить Web.Http и Web.Routing - person user3194517; 14.01.2014
comment
При использовании (верхняя страница) вам также необходимо указать ссылку на свой проект. - person felipekm; 14.01.2014
comment
Феликс, я не создал файл проекта, я только начал создавать веб-сайт, сказав новый веб-сайт, а затем добавив новый элемент в меню веб-сайта, это мой первый веб-сайт asp.net, и я предполагаю, что вы хотите, чтобы я сделал это в файле проекта правильно ?? или файл Registration.aspx.cs - person user3194517; 14.01.2014
comment
Попробуйте, создайте проект mvc, чтобы понять, как работают маршруты. удачи - person felipekm; 14.01.2014
comment
и что должно произойти в action/categoryname - person user3194517; 14.01.2014
comment
Ошибка 3 Имя типа или пространства имен «Http» не существует в пространстве имен «System.Web» (вам не хватает ссылки на сборку?) C:\Users\Ajiteesh\Desktop\Web\Vine\WebSite3\Global.asax 3 - person user3194517; 14.01.2014
comment
Да, измениться на глобальном! Человек, вам нужно сделать ссылку на него, щелкнуть правой кнопкой мыши по вашему проекту, затем добавить ссылки и добавить его! ›› Система.Веб - person felipekm; 14.01.2014
comment
Я думаю, это сработало, Феликс !! Вы можете перейти на www.alovine.com/registration Большое спасибо, приятель - person user3194517; 15.01.2014