У меня есть этот код в моем проекте:
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 это неправильно.
Пожалуйста, помогите мне.
Спасибо.