【问题标题】:Writing to XML file via AJAX and ASPX page通过 AJAX 和 ASPX 页面写入 XML 文件
【发布时间】:2012-11-20 11:37:49
【问题描述】:

我正在尝试使用 $.ajax.post 使用:

       $.ajax({
                type: "POST",
                url: "http://localhost/products/SaveXML.aspx",
                data: { name: "John", location: "Boston" }
            }).done(function (msg) {
                alert("Data Saved: " + msg);
            });               
        });

SaveXML 看起来像:

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"       
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script language="c#" runat="server">

public void testMethod()
{              
    string sayHello = "hello world";
}

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
   <head runat="server">
      <title></title>
   </head>
   <body>
   <form id="form1" runat="server"></form>
   </body>
</html>

最后,我想传入一些 XML 并让 SaveXML 处理它。

代码是否需要在代码隐藏中?是否需要标记为 Web 方法?

谁能告诉我这应该是什么样子?

谢谢

【问题讨论】:

  • 你可以简单地使用 GenericHttpHandler 并实现 processrequest 方法。在您的流程请求方法中,根据您在 HttpContext 参数中收到的数据执行 xml 编写逻辑,并发送一些响应代码或密钥以识别 ajax 中的成功。
  • 你能举个例子吗?

标签: asp.net xml ajax webforms


【解决方案1】:

您可以在 jQuery 中使用 ASP.NET 页面方法。

检查一下:

Using jQuery to directly call ASP.NET AJAX page methods

【讨论】:

  • 谢谢,我正在看这个,但到目前为止仍然没有快乐。
【解决方案2】:

代码确实需要是服务器端代码(这并不意味着您必须有一个代码隐藏文件 - 您拥有的 testMethod 可以正常工作,因为它在服务器端上下文中)。

由于您将数据发布.aspx 页面,因此无需使用网络方法。您可以使用Page_LoadOnInit获取发布的数据(通过Request页面属性)并在其中处理发布的数据。

【讨论】:

  • 谢谢,我正在调查这两个答案。
  • 那么,为了从“成功”功能中获得简单的反馈,我应该工作还是我也需要实现 page_Load?
  • @davy - 你不必这样做,但你确实需要在页面上输出一些东西。 “某事”是您的响应值,HTTP 成功标头(如果一切顺利,应为 200)将指示成功或失败。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多