我正在尝试使用jQuery的Ajax方法来使用ASP.NET Web服务。我希望Web服务方法的返回类型是JSON格式的数据,并且我用这些属性标记方法:
[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public MyObject[] GetMyObjects(int pageIndex) {/*...*/}
我还希望从方法中返回某种值,该值指示会话是否已过期,在SOAP标头中是输出参数。我如何使用jQuery语法执行此操作?我应该将MyObject[]
数组包装在包含SessionValid属性和有效负载的可序列化ResponseType对象中吗?或者是否可以使用SOAP标头和输出参数与jQuery?
感谢。
答案 0 :(得分:1)
我应该将MyObject []数组包装在包含SessionValid属性和有效负载的可序列化ResponseType对象中吗?
这是我通常使用的方式。
实施起来并不费时,而且非常容易维护。
[Serializable]
public class MyReturn
{
public MyObject[] MyObjectList { get; set; }
public bool SessionExpired { get; set; }
}
然后在执行AJAX调用的地方处理它。
编辑:我通常只使用
//...
contentType: "application/json; charset=utf-8",
dataType: "json",
//...
在我的AJAX调用中确保返回的类型是JSON格式。
答案 1 :(得分:1)
我不太熟悉在SOAP Web服务中使用会话。但是,我确实偶然发现了 this post ,其中指出JavaScript需要考虑Cookie,因为这是会话的维护方式。
虽然,SOAP可能会使用不同的方法通过它的标头跟踪会话,所以我不知道这是否准确。