ASMX返回纯字符串
我有一个ASP.NET Web服务(.asmx)。 我的服务定义如下:
[System.Web.Services.WebService(Namespace = "http://tempuri.org/")] [System.Web.Services.WebServiceBinding(ConformsTo = System.Web.Services.WsiProfiles.BasicProfile1_1)] public class MyService : System.Web.Services.WebService { [System.Web.Services.WebMethod] public string GetResult() { string result = ""; int day = System.DateTime.UtcNow.Day; if ((day % 1) == 1) result = "odd"; else result = "even"; return result; } }
目前,如果我调用此服务方法,我会得到以下结果:
even
我的问题是,我只需要返回字符串部分。 我不想返回包装XML。 如何使用.asmx执行此操作?
谢谢!
是否需要为此提供.asmx
Web服务? 我的意思是,通过排除SOAP信封,你实际上是在说“这不是一个SOAP Web服务”,所以为什么不进一步使它成为常规.aspx
页面而不是.asmx
web服务。
作为一个页面,你要做的事情将是微不足道的。 从页面中删除所有标记,使用Response.Headers
地编辑响应头,使用Response.Write()
输出原始文本,使用Response.End()
关闭响应。
使用json
将所需的属性添加到您的Web服务和Web方法中,您就可以获得所需的属性。
Web服务属性: [ScriptService]
Web方法属性: [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
在这里阅读样本
为什么要删除XML部分? 代理生成的代码需要通用格式,以便能够理解和读取正在返回的数据。 剥离XML实际上使客户端代理无法读取返回数据。