c# - 在 jquery 中调用 webservice (asmx) 时,html 返回为 xml

标签 c# jquery ajax asmx

我有一个 jquery block ,可以做一些像这样的 ajax 事情:

    $.ajax({
    url: '/webservices/manager.asmx/addNew',
    type: "POST",
    dataType: "html",
    data: { id: Id, name: Name, dept: Dept, helpId: HelpId },
    success: function (data) {
        //append to the table
        $('#divManagers').append(data); 
    },
    error: function () {
        //console.log('error');
    }
});

所以它通过得很好,asmx 接收数据,我计算东西,最后我用类似这样的东西回应:

<div id="divContainer">
         <h2>Manager Name</h2>
</div>

现在,即使我将 dataType 设置为 html,我的响应也包含在 xml 字符串中:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">&lt;div id=divContainer&gt;&lt;/h4&gt;Manager&nbsp;Name&lt;/div&gt;</string>

它们实际上都只是附加到页面上,完整的文本,而不呈现为实际的 html 元素。

请问这是怎么回事?

编辑

我只是在我的 asmx 中构建 html。类似

StringBuilder component = new StringBuilder();
component.appendFormat("<div id='divComponent'><h2>{0}</h2></div>', managerDataRow["ManagerName"].ToString());
return component.ToString();

我的 asmx 是一个单独的、正确的 asmx 页面,而不是普通 aspx 页面中的 [webmethod] 方法。谢谢。


如果我的实际输出与此处返回的结果有任何差异,那是因为我对其进行了编辑以使其更短。谢谢。

最佳答案

您可以从响应创建一个 jQuery 对象并从那里读取 text 值以获得所需的结果。

$('#divManagers').append($(data).text());

此外,这篇文章可能会回答为什么您没有在响应中直接返回 HTML

How to get clean/pure HTML from ASMX web service call

关于c# - 在 jquery 中调用 webservice (asmx) 时,html 返回为 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7984203/

相关文章:

javascript - 更改固定元素的内容时出现不需要的页面滚动

php - PHP 中的 JavaScript

javascript - HTML 转 PDF(带日语)

javascript - jquery延迟ajax调用执行

jquery - 使用 jQuery 提交表单在 IE8 中无法正常工作

c# - 在 Windows 8 上布局或分辨率发生变化时如何运行函数?

c# - 了解服务结构参与者删除

java - 如何根据下拉框重新加载页面

c# - SQL中的位逻辑

c# - 使用 C# 在任务栏中时钟小工具