使用AJAX

时间:2015-08-29 10:36:51

标签: javascript c# jquery asp.net ajax

你好,我是ASP.NET的新手并且是我自己学习的。我擅长Java J2EE(Struts2 Framework)!我知道如何使用struts2和ajax代码更新或更改任何div元素中的任何控件/文本。

我的问题

实际上,我试图在ASP.NET中做同样的事情只是为了学习!假设我有一个带有javascript和ajax方法的Default.aspx页面:

 <head runat="server">
  <script
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
  </script>

  <script type="text/javascript">
    function Change() {
        $.ajax({
            type: "GET",
            url: "temp.aspx",

            dataType: "text/html;charset=utf-8",
            success: function(msg) {
                $("#changer").html(msg);
            }
        });
    }
  </script>
  <title>Untitled Page</title>
 </head>
<body>

  <div id="changer">//this is the div i want to update it using ajax
    Hello Old Text
  </div>
    <input type="button"id="but" value="Hello Changer" onclick="Change()"/>

</body>

并假设我的temp.aspx为:

 <head runat="server">
   <title>Untitled Page</title>
 </head>
 <body>

  <div id="changer">
    Hello New Text
  </div>

 </body>

我只是想知道这是否可以在ASP.NET中使用,因为使用Java我熟悉这样的操作,但我不知道为什么在ASP.NET的情况下这不起作用!

任何提示或线索对我都有利,请不要介意我的问题,因为我对ASP.NET完全陌生,但我擅长Java

提前致谢!

2 个答案:

答案 0 :(得分:1)

dataType必须像这样定义为html;

function Change() {
    $.ajax({
        type: "GET",
        url: "temp.aspx",

        dataType: "html",
        success: function(msg) {
            $("#changer").html(msg);
        }
    });
}

来自jQuery Docs;

  

dataType(默认值:Intelligent Guess(xml,json,script或html))   类型:字符串

此外,您可以使用 错误 检查错误。

function Change() {
    $.ajax({
        type: "GET",
        url: "temp.aspx",

        dataType: "html",
        success: function(msg) {
            $("#changer").html(msg);
        },
        error: function(xhr, status, err) {
            console.error(status, err.toString());
        }
    });
}

这与ASP.NET或其他Web框架无关。它只与jQuery和Javascript有关。 jQuery没有认识到这一点&#34; text / html; charset = utf-8 &#34;。如果您没有使用dataType,则ajax请求会成功运行。它只是验证,结果根据dataType进行解释。例如,您返回一个JSON,并且您的端点的mime类型不是json(考虑到它的mime类型是html)只是将dataType更改为&#34; JSON&#34;你可以将结果解析为对象。

我写了一个小脚本,在第一个例子中,我将dataType设置为HTML,在其他示例中,我将dataType设置为JSON。 enter image description here

答案 1 :(得分:0)

你可以添加一个名为Temp.ashx的generec处理程序,它将返回新文本。

public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello New Text");
        }

在你的ajax调用中,你需要指明你期待一个文本。

 <script type="text/javascript">
    function Change() {
        $.ajax({
            type: "GET",
            url: "temp.ashx",

            dataType: "text/plain",
            success: function(msg) {
                $("#changer").html(msg);
            }
        });
    }
  </script>