我在我的网站上使用ajax从UserControl中调用一些名为NewsFeed.ascx的信息,该文件位于'controls'文件夹中,我的方法是创建一个 Web服务页面(在一个名为WebMethods的文件夹中),其中包含一个名为 GetRSSReader 的函数,它返回一个字符串格式:
[WebMethod]
public string GetRSSReader()
{
Page page = new Page();
UserControl ctl =
(UserControl)page.LoadControl("~/Controls/NewsFeed.ascx");
page.Controls.Add(ctl);
StringWriter writer = new StringWriter();
HttpContext.Current.Server.Execute(page, writer, false);
return writer.ToString();
}
然后我使用Jquery(我发现它太重了)来调用此页面以将返回的数据作为 JSON 获取,如下所示:
<div id="Content"></div>
<script type="text/javascript" defer="defer" src="../JAVA/Default.js"></script>
&GT;
$(document).ready(Update);
function Requests()
{
$.ajax({
type: "POST",
url: "../WebMethods/Feed.asmx/GetRSSReader",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$('#Content').html(msg.d);
}
});
}
Jquery.js和此页面(default.js)建立在 Java
文件夹中我的问题:我可以不使用webService而是使用WCF!以及如何!?
答案 0 :(得分:1)
您所谓的“Web服务”是.NET的旧“ASMX Web服务”功能(有时称为ASP.NET Web服务)。
WCF是ASMX Web服务的替代品。
有关入门信息,请参阅https://stackoverflow.com/tags/wcf/info。
答案 1 :(得分:0)
如果您刚刚返回JSON,那么我强烈建议您只使用HttpHandler而不是WCF,SOAP,UserControls以及其他任何其他内容的组合。 Here是关于这个主题的快速教程。您可以节省自己不需要的页面生命周期内容的开销。返回JSON就像使用JavaScriptSerializer序列化返回值一样简单。