首页 新闻 搜索 专区 学院

关于javascript中调用C#函数的问题

1
悬赏园豆:10 [待解决问题]

据说在javacript能调用C#写的函数,看以下是可以的:

public string ss()

             ...{

                return("a");

             }

          2、在html里用<%=fucntion()%>可以调用

             前台脚本

            

<script language=javascript>

             var a = "<%=ss()%>";

             alert(a);

             </script>

看了以上有两点不明白,请各位高手赐教:

 1、对于在javascript中能调用C#代码很不明白,因为javascript是在客户端运行的脚本,而C#函数是在服务端运行的,前者怎么能调用后者呢?

2、对于以上的"<%= %> 不明白,解释一下

电脑者的主页 电脑者 | 初学一级 | 园豆:2
提问于:2010-12-09 16:27
< >
分享
所有回答(5)
0

C#
public
string GetString(){return "abcde";}

 

js
var
a = "<%=GetString()%>"

 


当页面运行之后会返回服务器端方法的结果,变成

js
var
a = "abcde";

 

 

,其实你只要去尝试下就知道了,分清服务器端和客户端是怎么执行和呈现的,当你看到最终页面的时候服务器端代码已经执行并返回html+js等等代码...

三桂 | 园豆:3565 (老鸟四级) | 2010-12-09 17:11
0

嗯,我也想知道答案!

nyth | 园豆:154 (初学一级) | 2010-12-10 08:58
0

这个其实也不叫执行,因为这个所谓能执行的C#的函数返回的值肯定是不会实时变化的。也就是说在这个HTML页面初始化好后,这个<%=fucntion()%>服务端标记就会被替换成具体的值了。你可以理解为是客户端JS值的初始化,而这个初始化值来源于服务端。因为aspx本身是继承于aspx.cs 的,所友在aspx这个文件里只要包含在<%%>里面的,就可以调用aspx.cs中protected或者public的函数了

李.net | 园豆:826 (小虾三级) | 2010-12-10 09:06
还是不明白,我在javascript的教程里根本就没有看到过关于<%%>是什么意思的解释啊?
支持(0) 反对(0) 电脑者 | 园豆:2 (初学一级) | 2010-12-10 10:17
javascript教程如果没有牵涉到服务器编程应该不会有关于<%%>解释的,一般性的<%%>代表的是输出一段服务器端代码...
支持(0) 反对(0) 三桂 | 园豆:3565 (老鸟四级) | 2010-12-11 07:24
0

数据绑定表达式类型
一个变量
例:<asp:Label ID="Label1" runat="server" Text="<%#变量名%>"></asp:Label>
服务器控件的属性值
例: <asp:Label ID="Label1" runat="server" Text="<%#TextBox2.Text %>"></asp:Label>
数组等集合对象
例如把一个数组绑定到列表控件,例如ListBox,Repeater等,此时只需要把属性DataSource='<%# 数组名%>'
一个表达式
例:Person是一个对象,Name和City是它的2个属性,则数据绑定表达式:<%#(Person.Name + " " + Person.City)%>
一个方法
例:<%#GetUserName()%>。GetUserName()是一个已经定义的C#方法,一般要求有返回值。
Eval,DateBinder.Eval取得的数据表的字段

Astar | 园豆:40805 (高人七级) | 2010-12-11 06:48
不是只有在JS里,HTML里的任何里方都可以这样写。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-12-11 06:49
0

这个不是javascript调用c#。在ASP.NET中,所谓的html页面(.aspx)还会再次编译,最终生成普通的c#类。在这次编译中,javascript和html会以字符串形式保存,<%%>之间的部分当作普通的cs代码编译。<%%>是ASP.NET里的,和javascript本身没什么关系。

 

碧落星痕 | 园豆:708 (小虾三级) | 2011-11-30 14:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册