你好,我是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
提前致谢!
答案 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。
答案 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>