JS调用c#后台的函数

yinjianjing 2010-06-24 02:55:31
我想用JS调用C#后台的方法,应该怎么实现呢,不想去用隐长的控件,因为有刷新的问题,
如下面所示:
aspx文件
var a="aaa";
var b="bbb";
var s = "<%=CsharpVoid(a,b)%>"; //这里应该怎么用
document.write(s);
.cs文件
protected string CsharpVoid(string a,string b)
{
return a;
}
上面的实例中var s = "<%=CsharpVoid(a,b)%>"; 这样是错的,我应该怎么用上面定义的变量呢
各位大哥帮帮小弟,我不太会JS,谢谢啦
...全文
353 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄金安魂曲 2010-06-24
  • 打赏
  • 举报
回复
你可以使用AjaxPro这个组件,他可以实现在脚本中调用后台代码,和在后台写代码一样的。目前最新的版本是AjaxPro2,你可以到网上搜索一下。
目前的网址是:http://www.ajaxpro.info/
fuda_1985 2010-06-24
  • 打赏
  • 举报
回复
ajax.dll或ajaxpro.dll你直接可以在网上下载一个拿来用就是了,看我的介绍和别人的介绍,只是在webconfig里的配置时的名字不一样,其它用法基本上是一样的。
fosanie 2010-06-24
  • 打赏
  • 举报
回复
用隐藏控件或者ajax吧
yinjianjing 2010-06-24
  • 打赏
  • 举报
回复
ddd
yinjianjing 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 fosanie 的回复:]
试试这样

JScript code

var a = "aaa";
var b = "bbb";
var s = '<%=CsharpVoid("' + a + '","' + b + '") %>';

alert(s);
[/Quote]

这个是可以,不过在C#后台里protected string CsharpVoid(string a,string b)
{
return a;
}
中工的值是a=' + a + ',并没有转换成字符串类型的
fosanie 2010-06-24
  • 打赏
  • 举报
回复
试试这样

var a = "aaa";
var b = "bbb";
var s = '<%=CsharpVoid("' + a + '","' + b + '") %>';

alert(s);

jajawoshi 2010-06-24
  • 打赏
  • 举报
回复
用ajax吧 很简单的
jhll 2010-06-24
  • 打赏
  • 举报
回复
aspx中为
<script language="Javascript" type="text/javascript">
var s = "<% =CsharpVoid(a,b) %>";
alert(s);
document.write(s);
</script>
cs文件如lz所写是没有问题的,这样是可以调用成功的
yinjianjing 2010-06-24
  • 打赏
  • 举报
回复
ddd
nextuntil 2010-06-24
  • 打赏
  • 举报
回复
用ajax.dll 或者ajaxpro.dll 勒

就可以实现js里直接调用后台方法

后来方法要public
yinjianjing 2010-06-24
  • 打赏
  • 举报
回复
顶顶,小弟急啊
yinjianjing 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhanlixin 的回复:]
用AjaxPro:

前台:
var a="aaa";
var b="bbb";
var s =类名.CsharpVoid(a,b);

后台:
protected void Page_Load(object sender, System.EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));
...……
[/Quote]

AjaxPro这是什么东东啊,在哪的,
yinjianjing 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 z415353144 的回复:]
把a 和b传到后台去吧,
传值用runat=“sever”
算好之后var s = "<%=CsharpVoid()%>";
protected string CsharpVoid()
{
string a=abx.value;
return a;
}
[/Quote]


这里面abx是什么东东啊runat=“sever”这个应该设置在哪呢,
Zhanlixin 2010-06-24
  • 打赏
  • 举报
回复
用AjaxPro:

前台:
var a="aaa";
var b="bbb";
var s =类名.CsharpVoid(a,b);

后台:
protected void Page_Load(object sender, System.EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));
...
}

[AjaxPro.AjaxMethod]
public string CsharpVoid(string a,string b)

{
return a;
}
yinjianjing 2010-06-24
  • 打赏
  • 举报
回复
ddddddd
z415353144 2010-06-24
  • 打赏
  • 举报
回复
把a 和b传到后台去吧,
传值用runat=“sever”
算好之后var s = "<%=CsharpVoid()%>";
protected string CsharpVoid()
{
string a=abx.value;
return a;
}
fuda_1985 2010-06-24
  • 打赏
  • 举报
回复
html

function change(obj)
{

var arr = MemberData1.FunAjax(obj.value).value;
if( arr =="0")
{
document.getElementById('lblShow').style.display ='block';
document.getElementById('lblShow').innerText = '此帳號已經存在';
}
else
{
document.getElementById('lblShow').style.display ='none';
}
}

cs
private void Page_Load(object sender, System.EventArgs e)
{

if (! Page.IsPostBack)
{
Ajax.Utility.RegisterTypeForAjax(typeof(MemberData1));//MemberData1中为页面的类名称
this.TextGAccount.Attributes.Add("onchange","javascript:change(this);");

InitailData();//新增會員

if (Request["callback"] != null && Request["callback"].ToString() == "3")
{

Response.Write(BindAreaByAjax(Convert.ToInt16(Request["CityID"])));
Response.End();

}
}
}


//帳號驗證
[Ajax.AjaxMethod()]
public static string FunAjax(string GAccount)
{
GuestCenter gct =new GuestCenter();
DataTable tab = gct.GSTA_SelMemberByGAcount(GAccount);

if(tab.Rows.Count!=0)
{
return "0"; //帳號存在
}
return "1"; //帳號不存在
}

建立HttpHandler,在web.config里面加上

<configuration>

<system.web>

<httpHandlers>

<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />

</httpHandlers>

<system.web>

</configuration>


下载一个ajax.dll用上面的办法做吧。
fuda_1985 2010-06-24
  • 打赏
  • 举报
回复
你这用ajax做吧,你这种做法就算成功了,也只是在加载的时候会调一次。
夺命胖子 2010-06-24
  • 打赏
  • 举报
回复
Lz 这样调用是不行的,

这样的贴子每天都有。。。
加载更多回复(2)

62,072

社区成员

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

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

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

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