I have an ASP.NET web service (.asmx). My service is defined like the following:
[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;
}
}
Currently, if I call this service method, I get the following result:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">even</string>
My issue is, I need to return just the string part. I do NOT want to return the wrapping XML. How do I do this with an .asmx?
Thanks!
Does it need to be an .asmx
web service for this? I mean, by excluding the SOAP envelope you're essentially saying "this is not a SOAP web service" as it is, so why not take it a step further and make it a regular .aspx
page instead of an .asmx
web service.
As a page, what you're trying to do would be trivial. Remove all mark-up from the page, use Response.Headers
to edit the response headers accordingly, Response.Write()
to output your raw text, and Response.End()
to close the response.
Use json
add the required attribute to your web service and your web method and you get what you want.
Web Service Attribute:[ScriptService]
Web Method Attribute:[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
Read a sample Here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With