我有這樣的代碼在我的項目:使用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 Web服務:
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類,它的序列化模式是Unidirectional。
最後一個錨鏈接:
<a href="#" onclick="UI.Layouts.ShowLayoutSettings(5,2);">Test</a>
我的問題是,它是正確的,併發送Ajax請求我的服務,當我點擊這個鏈接,我的服務回報需要的對象,但它不火_onShowLayoutSettings作爲此請求的回調函數。
我測試這項工作,當我創建一個web servive剛剛返回和String對象,它是正確的,但我不知道爲什麼我的頁面佈局的對象,這是不正確的。
請幫幫我。 謝謝。
我以爲當我這樣做的時候它會做對,但事實並非如此。我看到HTML源代碼,看到這個代碼: VAR GTC = Sys.Net.WebServiceProxy._generateTypedConstructor; Type.registerNamespace('DALEntities'); 如果(typeof運算(DALEntities.PageLayout)=== '未定義'){ DALEntities.PageLayout = GTC( 「DALEntities.PageLayout」); DALEntities.PageLayout.registerClass('DALEntities.PageLayout'); } //]]> – 2009-07-17 09:41:47
確定我仍然認爲把該屬性在沒有在正確的方向。如果它仍然沒有工作,你可以編輯你的帖子來添加屬性 – 2009-07-17 09:44:58