JQuery и AJAX, не называя атрибутом webmethod после перезаписи URL-адресов или преобразования url
500 Internal Server Error
jQuery Ajax не вызывает webmethod после перезаписи url-адреса
Веб-сервиса.asmx и
содержат следующий colde
[WebMethod]
публичная строка HelloWorld() {
возвращение "Hello World";
}
-------------мой код jquery -------------
<script type="text/javascript"> $(document).ready(function () { $.ajax({ type: "POST", url: 'WebService.asmx/HelloWorld', data: {}, contentType: "application/json; charset=utf-8", success: countItem }); function countItem(data, status, xhr) { alert(data.d); } }); </script>
он работает нормально но когда я использую url rewrite или url rooting он дает ошибку
исходный путь
http://localhost:1388/WebSite15/WebService.asmx/HelloWorld
это сработает
но после перезаписи url или укоренения url
http://localhost:1388/WebSite15/Products/WebService.asmx/HelloWorld
так что это дает ошибку
Что я уже пробовал:
событий Application_Start недействительным(объект отправителя, EventArgs в электронной)
{
// Код, который запускается при запуске приложения
// Код, который запускается при запуске приложения
RegisterRoute(System.Web.Routing.Таблица.Маршруты);
}
void RegisterRoute(System.Web.Routing.Маршруты сбора маршрутов)
{
маршруты.Добавить("продукты", новая система.Web.Routing.Маршрут("{Products}/{category}", новый CategoryRouteHandler()));
}
публичный класс CategoryRouteHandler : IRouteHandler
{
общественные CategoryRouteHandler() { }
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
// AdventureWorksEntities awe = новые AdventureWorksEntities();
строки кота = объекта RequestContext.RouteData.Значения["раздел"] как строку;
string pageval = requestContext.RouteData.Values["Products"] в виде строки;
//int catid = благоговение.Продуктовые категории.Где(x => x.Name == кот).Метода firstordefault().Ее идентификатора productcategoryid;
Свойство HttpContext.Тока.Элементы["catid"] = cat;
если (pageval.Нижестоящим().ToString().Trim() == "тест")
{
верните BuildManager.CreateInstanceFromVirtualPath("~/test1.aspx", typeof(Page)) как страница;
}
еще
{
верните BuildManager.CreateInstanceFromVirtualPath("~/Products.aspx", typeof(Page)) как страница;
}
// string vartualpath=BuildManager.CreateInstanceFromVirtualPath("~/Products.aspx", typeof(страница)).Метод toString();
//return BuildManager.CreateInstanceFromVirtualPath("~/category.aspx", typeof(Page)) как страница;
}
}