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实际上使客户端代理无法读取返回数据。