【问题标题】:return html from a web service in asp.net从 asp.net 中的 Web 服务返回 html
【发布时间】:2009-11-20 15:55:37
【问题描述】:

在 C# 中是否可以从 Web 服务返回 HTML?如果我将 XSLT 转换输出标记作为 XML,那么我将获得 XML 标记

<?xml version="1.0" encoding="UTF-8"?>

在返回页面的顶部。下面是我的 HTML,这很好,但我真正想做的是将我的 XSLT 转换输出标记更改为 HTML,并让 Web 服务只返回 HTML 代码。这可能吗?

【问题讨论】:

  • 这是 WCF 还是 ASMX Web 服务?

标签: c# xslt transformation


【解决方案1】:

我假设您的 Web 服务正在被 Javascript 调用以实现某种 AJAX-y 客户端包含。

这是个坏主意

您要做的是将 data 返回到您的客户端 javascript 并使用 DOM 操作(即 JQuery 或 ASP.NET AJAX)将数据插入您的页面。不要尝试从 Web 服务返回原始 HTML;这不是网络服务的重点!如果您需要 HTML,请使用 ASPX 页面返回 HTML。如果您使用服务器端 XML 转换来构建 HTML,请使用包含自定义服务器控件的 ASPX 页面,该控件将 XML 转换为 HTML。

【讨论】:

  • 这样做的问题是我正在处理的项目有 web 端密码保护,但 web 服务端没有。所以我需要一个使用 web 服务返回 html 的解决方案。
【解决方案2】:

我可能没有正确理解您的问题,但这不会像创建一个返回包含 HTML 的字符串值的 Web 方法那么简单吗?

[WebMethod]
public string GetHTML()
{
    return "<HTML><TITLE>...";
}

【讨论】:

  • 如果我没记错的话,我以前试过这个。使用 jQuery AJAX 时,我相信来自 ASMX 的响应包含在字符串标记元素中,如果您尝试将其直接附加到 DOM,则无法正确呈现。您必须去除返回的任何无关数据,这在当时看起来有点混乱。
  • 创建一个返回字符串值的 Web 方法确实有效,但 Bit Destroyer 是正确的,因为它包含在一个字符串标记元素中,该标记必须被我的 JavaScript 调用剥离。凌乱,但它会工作。
猜你喜欢
  • 1970-01-01
  • 2010-09-27
  • 2015-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-03
相关资源
最近更新 更多