jquery ajax 在.net中的问题

Microtigers 2009-08-01 02:59:07

<script language="javascript">
var user_is_exist = false;
function checkname()
{
$.ajax({
type: "get",
url: "Reg.aspx/ajax",
async: false,
dataType: "text", //返回类型是json
contentType:"application/text;",
data: "name=" + $("#username").val(),
async : false,//取消异步,进行同步,进行完ajax在进行下面的ajax
success: function(data) {
if(data=="1")
{
user_is_exist = true;
}else{
user_is_exist = false;

}
}

});

if (!user_is_exist) {
arguments[1].IsValid = false;
}
}


protected void Page_Load(object sender, EventArgs e)
{

}
public static object ajax(string str)
{
string name = Request.QueryString["name"].ToString();
if (name == "Microtiger")
{
return "0";
}
else
{
return "1";
}
}

如果方法加上了 static的话Request.QueryString["name"].ToString();提示错误
string name = Request.QueryString["name"].ToString();
这个地方

调用的时候用 url: "Reg.aspx/ajax", 为什么返回的不是 0或者1 而是整个的reg.aspx页面的html源码


谁能给个正确的jquery在.net中的应用源码
...全文
284 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿非 2009-08-04
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


using System.Web.Services;

public partial class PageMethodDemp : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

[WebMethod]
public static string GetDate()
{
return DateTime.Now.ToString();
}
}

阿非 2009-08-04
  • 打赏
  • 举报
回复

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PageMethodDemp.aspx.cs"
Inherits="PageMethodDemp" %>

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

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="jquery-1.2.6.min.js"></script>
<script>
$(document).ready(function() {
$("#Result").click(function() {
$.ajax({
type: "POST",
url: "PageMethodDemp.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// 使用 Page Method 的返回值来替代 div 的内容
$("#Result").text(msg.d);
}
});
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="Result">Click here for the time.</div>
</form>
</body>
</html>

Microtigers 2009-08-04
  • 打赏
  • 举报
回复
vs 08
阿非 2009-08-03
  • 打赏
  • 举报
回复
你用的什么环境? vs 05 还是 vs 08
Microtigers 2009-08-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 owenxin26 的回复:]
这个涉及到的问题太多了,首先你用jquery调用的是一个Page Method,只是asp.net中比较特殊的一种Web service,只能在本页面范围内调用,其次ASP.NET返回的JSON值是嵌套在一个名为"d"的父级属性里面的,你对返回值没做任何处理,不可能得到正确的结果,再次关于Page Method的格式,不光要写static,还要在上面加上[WebMethod]属性声明:

[WebMethod]
public static object ajax(string str)
{
}

最后,Request.Querystring不能在Page Method里面使用,因为这个已经属于web service的范畴了,是request不到东西的,你需要把querystring通过方法参数从客户端传值到page method,或者可以试试看保存在session里面。

具体参考下:
http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/
[/Quote]

能给个具体的代码看看吗
惜分飞 2009-08-02
  • 打赏
  • 举报
回复
Response.End();
owenxin26 2009-08-01
  • 打赏
  • 举报
回复
这个涉及到的问题太多了,首先你用jquery调用的是一个Page Method,只是asp.net中比较特殊的一种Web service,只能在本页面范围内调用,其次ASP.NET返回的JSON值是嵌套在一个名为"d"的父级属性里面的,你对返回值没做任何处理,不可能得到正确的结果,再次关于Page Method的格式,不光要写static,还要在上面加上[WebMethod]属性声明:

[WebMethod]
public static object ajax(string str)
{
}

最后,Request.Querystring不能在Page Method里面使用,因为这个已经属于web service的范畴了,是request不到东西的,你需要把querystring通过方法参数从客户端传值到page method,或者可以试试看保存在session里面。

具体参考下:
http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/
cpp2017 2009-08-01
  • 打赏
  • 举报
回复
你提交到另一个文件吧。
Microtigers 2009-08-01
  • 打赏
  • 举报
回复
string name = Request.QueryString["name"].ToString();
if (name == "Microtiger")
{
Response.Clear();
Response.ContentType = "application/text";
Response.Write("0");
Response.End();
}
else
{
Response.Clear();
Response.ContentType = "application/text";
Response.Write("1");
Response.End();
}

也不行
昕颖 2009-08-01
  • 打赏
  • 举报
回复
public static object ajax(string str)
{
string name = Request.QueryString["name"].ToString();
if (name == "Microtiger")
{
return "0";
}
else
{
return "1";
}
}改为这样的去试试:
string name = Request.QueryString["name"].ToString();
if (name == "Microtiger")
{
Response.Clear();
Response.ContentType = "application/text";
Response.Write("0");
Response.End();
}
else
{
Response.Clear();
Response.ContentType = "application/text";
Response.Write("1");
Response.End();
}
Microtigers 2009-08-01
  • 打赏
  • 举报
回复
我是在同一个文件里....Page_Load已经有其他操作
cpp2017 2009-08-01
  • 打赏
  • 举报
回复

protected void Page_Load(object sender, EventArgs e)
{
string name = Request.QueryString["name"];
if (name == "Microtiger")
{
Response.Write("0");
}
else
{
Response.Write("1");
}
Response.End();


}

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧