Я пытаюсь извлечь номер идентификатора из URL-адреса с помощью веб-службы, чтобы его можно было использовать в качестве параметра для предложения where в операторе выбора, который создает данные из базы данных на основе идентификатора записи. Эти данные затем будут переданы обратно на страницу для заполнения элемента в модальной всплывающей вдове jQuery.
Все отлично работает со статическим идентификатором (например: string postid = "120"
), но я не знаю, как получить номер идентификатора из URL. Я использую маршрутизацию в .Net 4, и метод доступа к маршрутизации на страницах не работает в веб-сервисе. На страницах я просто делаю что-то вроде var id = RouteData.Values["id"];
и это получает идентификатор, но когда я сделал это в веб-сервисе, я получил ошибку:
CS0120: ссылка на объект требуется для нестатического поля,
метод или свойство 'System.Web.Routing.RouteData.Values.get'
Резюме:
У меня есть доступ к веб-сервису со страницы сведений, где я хочу получить RouteData
для страницы, выполняющей запрос. Я хочу сделать это так же легко, как и на странице, используя RouteData.Values
, что так же просто, как сейчас устаревший Request.Querystring
.
Теперь я в замешательстве, потому что, хотя я мог бы легко добавить новый маршрут для веб-службы, я не знаю, я бы назвал это с помощью jQuery Ajax из-за синтаксиса webservice.asmx / webmethod.
Прямо сейчас у меня есть URL: «../webservices/googlemaps.asmx/GetGoogleMap» в моем jQuery Ajax, но это не настоящий URL. Он существует только где-то в jQuery, и способ вызова службы с использованием только JavaScript - это тоже не реальный URL, а webservice.webmethod()
, который в этом случае будет googlemaps.GetGoogleMap()
.
Я попытаюсь зарегистрировать маршрут для webservices/googlemaps.asmx/GetGoogleMap/postid
, но я сомневаюсь, что он будет работать, потому что GetGoogleMap
не является каталогом или querystring
.