我有一個web方法可以接受XElement
參數,我想用jQuery Ajax調用它。我可以使用jQuery Ajax和簡單的參數(如int,string,...)來調用簡單的方法,但是我不知道如何使用jQuery Ajax傳遞給一個複雜的類型。如何將XML參數傳遞給使用jQuery的WEB方法Ajax
編輯1)
我有一個簡單的Web服務:
[WebMethod]
public bool MyGetPassXML(System.Xml.XmlDocument nima)
{
try
{
if (nima == null)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
return false;
}
}
對於我寫這段代碼調用:
VAR xmlFragment = 'AB' ;
$("#Button2").click(function() {
$("#Loader").show();
$.ajax({
type: "POST",
url: "WebService.asmx/MyGetPassXML",
data: "{'nima':'" + xmlFragment + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
$("#Loader").hide();
alert('OK');
}
});
});
我已經測試與Firefox
,看看請求與FireBug
的反應,但我得到這個錯誤:
{"Message":"Cannot convert object of type \u0027System.String\u0027 to type \u0027System.Xml.XmlDocument\u0027","StackTrace":" at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject)\r\n at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject)\r\n at System.Web.Script.Services.WebServiceMethodData.StrongTypeParameters(IDictionary
2 rawParams)\r\n at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary
2 parameters)\r\n at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
我改變System.Xml.XmlDocument
到XElement
,但我再次得到這個錯誤。我該如何解決這個問題?
你是否已經結婚使用XML? JSON簡單得多,.net也可以處理它。 – 2012-01-12 05:45:53
我使用了XML,我想通過XML參數 – Arian 2012-01-12 05:52:51
然後,您需要在Javascript中手動連接XML字符串,並將其作爲您的AJAX調用中的數據傳遞。你是否問題,然後如何形成一個XML片段?使用jQuery進行AJAX調用?都? – 2012-01-12 05:56:21