У меня есть блок jquery, который делает некоторые вещи вроде 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/"><div id=divContainer></h4>Manager Name</div></string>
и все они на самом деле просто добавляются на страницу, полный текст, без рендеринга в качестве реальных HTML-элементов.
Что происходит, пожалуйста?
РЕДАКТИРОВАТЬ
Я просто создаю HTML в моем asmx. что-то вроде
StringBuilder component = new StringBuilder();
component.appendFormat("<div id='divComponent'><h2>{0}</h2></div>', managerDataRow["ManagerName"].ToString());
return component.ToString();
Мой asmx - это отдельная правильная страница asmx, а не метод [webmethod] внутри обычной страницы aspx. Спасибо.
если есть какая-либо разница между моим фактическим выводом и возвращенным результатом здесь это потому, что я отредактировал его, чтобы сделать его коротким. спасибо.