У меня есть модуль dnn, и я пытаюсь сделать ajax-вызов на странице. Моего клиента код:Ajax Call не может найти webmethod
$.ajax({
type: "POST",
url: "/DesktopModules/DMUI/Controls/Project/ProjectDrillingMapsView.ascx/GetMarkerList",
dataType: "json"
})
.done(function (data) {
var list = data;
$.each(list, function (index, item) {
alert(item);
});
})
.fail(function (xhr, textstatus, errorthrown) {
alert('Error:' + errorthrown + ', textstatus:' + textstatus);
});
сторона сервера у меня есть это:
[WebMethod]
public string GetMarkerList()
{
string output = null;
List<Marker> markerList = new List<Marker>();
//My main query where I get a list of Objects
Expression<Func<DomainModel.Drilling, bool>> criteria = null;
criteria = (d => d.ProjectId == this.SelectedProjectId && d.XCoordinate != 0 && d.YCoordinate != 0);
_dpList = _drillingSrv.GetDrillingList(criteria, d => d.DrillingCode);
foreach (DomainModel.Drilling dr in _dpList)
{
Marker marker = new Marker();
marker.latitude = dr.GMapsLatitude.Value;
marker.longitude = dr.GMapsLongitude.Value;
marker.code = dr.DrillingCode;
marker.depth = dr.Depth.Value;
markerList.Add(marker);
}
JavaScriptSerializer jss = new JavaScriptSerializer();
output = jss.Serialize(markerList);
return output;
}
Сначала я получаю внутреннюю ошибку сервера 500. Затем я пошел в мою web.config и сделал это : https://stackoverflow.com/a/2169847/1737287
Теперь я получаю не найдена ошибка 404. Я интересно, что я могу делать неправильно ...
Вероятно, вам нужно добавить путь к этому вызову Ajax в правила обработки URL-адресов для DNN, чтобы заставить его игнорировать этот URL-адрес и разрешить .NET обрабатывать запрос. –
@ChrisHammond Можете ли вы ссылаться на некоторую документацию о том, как это сделать? На данный момент я решил сделать обходной путь. Я вообще не использовал вызов ajax. Я создал скрытый div с runat = "server" и на prerender, который я назвал GetMarkerList, чтобы написать вывод в этот div. Это дает мне тот же результат, и я «уклонился» от проблемы вызова ajax. Но я все равно хотел бы знать, что случилось ... –