URL перезапуска для страницы ASP.NET на IIS - PullRequest
4 голосов
/ 22 января 2012

Хорошо, у меня была огромная проблема, давшая правильное название, мои оправдания этому.

В любом случае, я снова начал медленно смотреть на Web и ASP.NET, я разработчик на C #, но у меня есть в основномработал с приложениями Windows последние 5 лет или около того. Дело не в том, что в то время я не касался Интернета как такового, но это как веб-сервисы (Restfull, а также уродливые сервисы SOAP). Я также работал с более«необработанные» веб-запросы.

Но я не работал с IIS или ASP.NET все это время.

Я бы хотел разместить веб-страницу, использующую стиль URL.Я мог бы лучше описать с «как отдых», отсюда и название «Restfull URL».Потому что я думаю, что большинство людей думает о таких URL в терминах:

http://example.com/item/
http://example.com/item/23/

и так далее.Не то чтобы они выглядели так, однако я хотел бы использовать такие URL вместо

http://example.com/item?id=23

Я знаю, что это делает подтекст, но мне не повезло найти его в их кодовой базе.

Теперь, насколько я могу судить, я мог бы просто реализовать некоторые IHttpHandler'ы, но по крайней мере для примеров, которые я видел, они записывают исходный код страницы в коде, и у меня все еще есть мастер-страницы и т. Д. Я хочуиспользовать вместо того, чтобы взять на себя все эти вещи, я просто хочу направить http://example.com/item/23/ на http://example.com/item и попросить предмет с идентификатором 23 ...

Я надеюсьэто вообще имеет смысл>. <... И у кого-то есть под рукой лучшие примеры того, что я смог найти. </p>

Ответы [ 4 ]

3 голосов
/ 22 января 2012

Если вы смотрите на asp.net/IIS, другой вариант - ASP.Net MVC .Создать сервисы RESTful довольно просто.

Вот учебник:

http://www.codeproject.com/Articles/233572/Build-truly-RESTful-API-and-website-using-same-ASP

3 голосов
/ 22 января 2012

Этого можно добиться, используя Маршрутизация . Вот ссылка на блог MSDN. Конечная точка .Net - Использование маршрутов для создания служб WCF WebHttp , с которых следует начать.

2 голосов
/ 22 января 2012

Так вот ваши варианты-

Для платформы .net 3.5 sp1 с IIS7 вы можете использовать функцию маршрутизации asp.net, чтобы URL-адреса в стиле MVC, о которых вы упомянули, должны создать собственный обработчик маршрута, реализующий интерфейс IRouteHandler, как описано здесь Как: использовать маршрутизацию с веб-формами и зарегистрируйте свои правила маршрута в методе Application_Start в Global.asax. Для вашего примера вы можете зарегистрировать маршрут, подобный этому

    routes.Add("ItemRoute", new Route
    (
    "item/{itemId}", 
    new CustomRouteHandler("~/item.aspx")
    ));  

и затем вы можете получить доступ к itemId на перенаправленной странице item.aspx, проверив элемент контекста запроса

    requestContext.HttpContext.Items["itemId"]

Для .net framework 4 MVC вам не нужно создавать пользовательский обработчик, вы можете напрямую использовать

    routes.MapPageRoute("ItemRoute", "item/{itemId}", "~/item.aspx");

в вас метод global.asax Application_Start.

Эта ссылка объясняет больше о маршрутизации

1 голос
/ 22 января 2012

Способ достижения этого - переписывание URL.

Если вы планируете разместить свое веб-приложение в Internet Information Services 7.x, вы можете воспользоваться модулем перезаписи URL IIS:

Перезапись URL - это просто сопоставление дружественного URL с недружественным, обычным, который удобен для программирования при проверке параметров GET.

Например:

http://yourdomain.com/item/48 => http://yourdomain.com/Items.aspx?Id=48
...