Asp.net 格式化的.net web服务(用于.asmx解决方案)

Asp.net 格式化的.net web服务(用于.asmx解决方案),asp.net,sql-server,xml,web-services,asmx,Asp.net,Sql Server,Xml,Web Services,Asmx,我已经搜索过了,但确实找不到.asmx解决方案的确切答案。如何创建格式如下所示的.Net web服务?它还将与数据库连接 <Books> <Book BookID="1" BookName="BookName1" Page="100"/> <Book BookID="2" BookName="BookName1" Page="200"/> <Book BookID="3" BookName="BookName1" Page="30

我已经搜索过了,但确实找不到
.asmx
解决方案的确切答案。如何创建格式如下所示的.Net web服务?它还将与数据库连接

<Books>
    <Book BookID="1" BookName="BookName1" Page="100"/>
    <Book BookID="2" BookName="BookName1" Page="200"/>
    <Book BookID="3" BookName="BookName1" Page="300"/>
</Books>

我从您的帖子中得知,您正在使用WCF。(我建议切换到MVC或“Web API”,因为这样做会更容易。)不过,使用WCF,您可以在操作合同中将主体样式设置为“裸体”:

[OperationContract]
[WebGet(ResponseFormat=WebMessageFormat.Xml, BodyStyle=WebMessageBodyStyle.Bare)]
Books GetBooks();
我想你已经把实体设置成这样了:

[DataContract]
public class Book
{
    [DataMember]
    public int BookID { get; set; }
    [DataMember]
    public String BookName { get; set; }
    [DataMember]
    public int Page { get; set; }
}

使用该约定应该会导致服务返回您指定的XML,如数据约定中定义的,而不使用soap包装器。

您可以使用
WCF
BasicHttpBinding
来模拟
.asmx
web服务

您可以使用:

[WebMethod] 
public XmlDocument YourMethod() 
{  
} 
您可以查看此链接:


谢谢!我正在一个新的WCF项目中尝试。是否可以使用XML Web服务进行创建?我是说“.asmx”?嗯,我认为.asmx服务总是将结果封装在SOAP中。如果您不介意的话,可以通过将返回时间设置为“string”或Linq“XElement”,随时返回XML。有关更多信息,请参阅此链接:再次非常感谢,这些也帮助了我。你说的“格式化”是什么意思?我的意思是看起来像上面的代码。@johnsa理解你是对的,这是一项传统技术,但我现在必须使用传统技术,所以他给出了我需要的解决方案。谢谢。@David:如果你需要ASMX解决方案,那么你应该在你的问题中这样说。我会删除否决票,但在问题被编辑之前我不能这样做。我建议你删除关于WCF的部分,因为OP已经声明他需要一个ASMX解决方案。@David:谢谢,但我的意思是Kerezo需要编辑他的答案,以便我扭转否决票。为什么我要编辑我的答案?有人喜欢使用传统技术。有人喜欢你这样的否决票是出于个人品味而不是科学品味