return html from wcf service

前端 未结 2 1669
逝去的感伤
逝去的感伤 2021-01-03 03:17

I have a web service from which I need to return a string containing html. This html is the markup for a Select control (for use in jqGrid search filters), e.g.



        
2条回答
  •  野趣味
    野趣味 (楼主)
    2021-01-03 03:46

    I know this is an old post, but for a service that will only be hosted in IIS, here is an easy way to return html:

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public Stream getHtml()
    {
        // get the html
        var html = DoSomethingToGetHtml();  //Not a built-in .Net method ;)
    
        // we want our result interpreted as plain html
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/html; charset=utf-8";
    
        // create a stream from our html because trying to return a string adds an extra header tag
        //      to the response.  Returning a stream returns the html by itself
        var result = new MemoryStream(Encoding.UTF8.GetBytes(html));
    
        // return the result
        return result;
    }
    

    This code requires the following in the web.config hosting the service:

    
        
        
    
        
            
                              
                    
                
            
        
        ...
    
    

    In the configuration for the service, set behaviorConfiguration="webHttpEnabled".

    Returning html in this way limits the reusability of the service a bit, but it's an easy way to solve the problem if you're reasonably sure the service will always be hosted in IIS.

提交回复
热议问题