Return html format on wcf service instead of json or xml

Tono Nam picture Tono Nam · Dec 6, 2012 · Viewed 11.3k times · Source

I have the operation contract:

[System.ServiceModel.Web.WebGet( UriTemplate = "c" , BodyStyle = WebMessageBodyStyle.Bare )]
[OperationContract]
string Connect ( );

and I have it implemented as:

    public string Connect ( )
    {
        return "<a href='someLingk' >Some link</a>";
    }

when I go to that link I get: enter image description here

how can I format the response as html? or even plain text. I don't want to get back html nor json...

I know I can create a website that queries the service but I just want to create a simple "Console like" application that works on any browser...

Answer

sroes picture sroes · Dec 6, 2012

Returning a stream allows you to return a raw string:

[System.ServiceModel.Web.WebGet( UriTemplate = "c" , BodyStyle = WebMessageBodyStyle.Bare )]
[OperationContract]
public System.IO.Stream Connect()
{
    string result = "<a href='someLingk' >Some link</a>";
    byte[] resultBytes = Encoding.UTF8.GetBytes(result);
    WebOperationContext.Current.OutgoingResponse.ContentType = "text/html";
    return new MemoryStream(resultBytes);
}