.net 如何使用.ashx中的XmlTextWriter为myXMLHttpRequest.responseXML生成xml
我在.ashx页面中尝试了它,但在myXMLHttpRequest.status中出现了错误500,我不知道问题出在哪里。一个生成简单xml的简单代码会非常好。比如:.net 如何使用.ashx中的XmlTextWriter为myXMLHttpRequest.responseXML生成xml,.net,ashx,xmltextwriter,.net,Ashx,Xmltextwriter,我在.ashx页面中尝试了它,但在myXMLHttpRequest.status中出现了错误500,我不知道问题出在哪里。一个生成简单xml的简单代码会非常好。比如: <properties> <property> <address>812 Gwyn Ave</address> </property> <property> <address>3308 James Ave S</ad
<properties>
<property>
<address>812 Gwyn Ave</address>
</property>
<property>
<address>3308 James Ave S</address>
</property>
</properties>
现在没有访问VisualStudio的权限,所以请从头开始执行此操作。你应该从五点开始
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/xml";
using (XmlWriter writer = XmlWriter.Create(context.Response.OutputStream))
{
writer.WriteStartDocument();
// do xmlwriter stuff here.
writer.WriteEndDocument();
}
}
更新:
我确实想把OutputStream放在那里。我更新了示例以反映这一点
我已经简要地看过你的代码了。我可以看出您没有将xmlwriter的结果输出到HttpResponse。我的示例是通过将其绑定到Context.Response.OutputStream来实现的,这应该是它无法工作的原因之一。虽然我不明白为什么会出现500错误。也许您应该在VisualStudio中运行,看看是否有任何错误会导致这种情况
我还注意到您使用了reader[0]。这在技术上可能是正确的,我建议您使用以下更安全的方法:
int fieldIndex = reader.GetOrdinal("address");
reader.GetString(fieldIndex);
这将确保您始终从查询中获得所需的字段。即使将来您决定更改数据库架构以添加更多列。您能与我们分享您尝试的解决方案吗?在您的代码上下文中。Response.ResponseStream ResponseStream在我的visual studio中是未知的!你是说OutputStream吗?
int fieldIndex = reader.GetOrdinal("address");
reader.GetString(fieldIndex);