У меня есть этот код в моем проекте:Использование ASP.NET WebService с JavaScript
var UI =
{
Layouts:
{
ShowLayoutSettings: function(pid, lid) {
My.PageServices.GetPageLayout(lid, pid, UI.Layouts._onShowLayoutSettings);
},
_onShowLayoutSettings: function(obj) {
alert(obj.ID);
}
}
}
и в моем asp.net проекта Веб-сервис PageServices:
namespace My
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class PageServices : System.Web.Services.WebService
{
public PageServices()
{
}
[WebMethod]
[ScriptMethod(UseHttpGet = false, XmlSerializeString = true)]
[GenerateScriptType(typeof(PageLayout))]
public PageLayout GetPageLayout(string lid, int pid)
{
if (!SystemModel.UserManager.HasLogin())
return null;
var o = SystemModel.Layouts.GetPageLayout(pid);
o.Tag = lid;
return o;
}
}
}
я должен упомянуть, что мой Класс PageLayout - это класс linq, а режим сериализации - однонаправленный.
и, наконец, ссылка якоря:
<a href="#" onclick="UI.Layouts.ShowLayoutSettings(5,2);">Test</a>
Моя проблема в том, что это правильно, и посылает запрос Ajax к моей службе, когда я нажимаю на эту ссылку и моя служба возвращает объект по мере необходимости, но не срабатывает _onShowLayoutSettings как функция обратного вызова для этого запроса.
Я тестировал эту работу, когда создаю веб-сервис, который только что возвращает, и объект String, и все было правильно, но я не знаю, почему для моего объекта PageLayout это неверно.
Пожалуйста, помогите мне. Спасибо.
Да, я удивлен вашим кодом, прежде чем этот конвертер не работает. Раньше у меня была аналогичная работа. Это кажется излишним. Но хорошо сделано для получения чего-то работающего –
да! Большое вам спасибо за ответ. –