JS 自动调用了后台代码
前台:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
     <title>无标题页</title>
     <script language="javascript" type="text/javascript">
         function kk()
        {
            var k="<%=Dow() %>";
            alert(k);
        }    </script>
</head>
<body>
     <form id="form1" runat="server">
     <a href="#" id="dd" onclick="kk()">234234</a>
     </form>
</body>
</html>
后台:
public string Dow()
    {
        return "123";
    }
问题:为什么在页面加载的时候就执行了 后台的 Dow()  函数,而不是在我点击的时候执行?  
                              求答案!!!!!!!!!!!!!!!!!!!!!!!!
------解决方案--------------------前台
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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 language="javascript" type="text/javascript">
       function kk() {
           var k = "<%=Dow() %>";
           alert(k);
       } </script>
</head>
<body>
   <form id="form1" runat="server">
   <div>
       <a href="#" id="dd" onclick="kk()">234234</a>
   </div>
   </form>
</body>
</html>
后台
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page  
{
   protected void Page_Load(object sender, EventArgs e)
   {      
   }
   public string Dow()
   {
       return "123";
   }
}
上面是我随便创建的一个页面  正常 你看哈
------解决方案--------------------楼主你要学习下网页加载的顺序。它分先后顺序,,   
 后台加载 》 HTML页面加载 》 下载到本地,》 本地DOMready 事件》等等各种AJAX请求 
 那么你在后台加载完后,这时候服务器端开始加载HTML页面,这个过程中HTML页面可以访问后台程序的任何PUBLIC值和函数,如果是值那么直接取出来:比如你后台有public string Name{get {return  "adfa "}};那么后台就会执行这个get 请求,如果是函数的话同样会执行这个函数。。。所以在你的代码里var k= " <%=Dow() %>  ";这里的dow()函数此时就执行了。。并且返回你要的字符串,而并不是想要的那种后台函数的引用。。然后页面加载完成后下载到本地等等 
------解决方案--------------------在页面上写一个隐藏按钮,js中调用它的click就可以了
------解决方案--------------------因为所有服务器端的代码都是先执行,支持完毕,才发送到客户端
你可以这样
function kk() {
ajax调用方法
 }
------解决方案--------------------最好的方法是采用回调的方法
HTML code
<%@ Page Language="C#" EnableViewState="false" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  private string ReturnBackValue = " 返回到客户端的内容 | ";
  //声明函数,用来返回到客户端。
  public string GetCallbackResult()
  {
    return ReturnBackValue;//将结果返回客户端
  }
  //声明一个函数,用来接收客户端的参数;函数名字不可以随便,必须是RaiseCallbackEvent才可以
  public void RaiseCallbackEvent(String eventArgument)
  {
    this.ReturnBackValue +