function xihuan() {
            var selectId = event.srcElement.id;
            var shuzi = selectId.substr(2, 1); //得到数字
            var neirongId = "neirong" + shuzi + ""//得到内容的id
            if (neirongId!=null) {
               var   divId = document.getElementById("" + neirongId + "").innerHTML;
                var hotelId='<%=hotelId(""+divId+"") %>';
                <%=GetLikeNum(hotelId) %>
            }
        }后台: public int hotelId(string hotelName)
        {
            int id = 0;
            DataTable dt = hotelbll.GetList("HoteLTitle=" + hotelName + "").Tables[0];
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    id = Convert.ToInt32(dt.Rows[i][0].ToString());
                    break;
                }
                return id;            }
            else
            {
                return 0;
            }
           
        }编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误消息: CS0103: 当前上下文中不存在名称“divId”源错误: 行 31:             if (neirongId!=null) {
行 32:                var   divId = document.getElementById("" + neirongId + "").innerHTML;
行 33:                 var hotelId='<%=hotelId(""+divId+"") %>';
行 34:                 <%=GetLikeNum(hotelId) %>
行 35:             }
 
为什么啊??急急急!! 我定义了divId 了啊

解决方案 »

  1.   

      var hotelId='<%=hotelId(""+divId+"") %>';  这一段代码
    divId 是前段的JS代码,怎么可以放到后端的方法中?
      

  2.   

    前台js顶多能调用 无参的后台方法有参的他无法识别
    可以用ajax来调用后台方法达到此功能
      

  3.   


    不会可以学啊  百度 google
      

  4.   

    ajax传参不会??你这样在js中写是不可以被编译成功的,ajax把这个传过去
      

  5.   

                    $.ajax({
                        type: "get",
                        dataType: "json",
                        url: "ReturnCity.ashx",
                        data: {
                            provinceId: $("#s_province").val()
                        },
                        success: function (msg) {
                            $("#s_city").empty();  //清空市区选项
                            $("#s_county").empty();  //清空县区选项                        //$("<option value='-1'>请选择市/区</option>").appendTo("#s_city");
                            //$("<option value='-1'>请选择位置</option>").appendTo("#s_county");                        $.each(msg.returnStr, function (i, n) {
                                //alert(i);
                                $("<option value=" + n.cityID + ">" + n.city + "</option>").appendTo("#s_city");
                            });
                            changeCity();
                        },
                        error: function (msg) {
                            alert(msg);
                        }
                    });data里面就是放参数的参数可以用逗号隔开
      

  6.   

    实在不行你百度 .net ajax
      

  7.   

    前台传参后台获取,前台的参数通过ur或ajax提交的方式传递,到后台后作为服务器参数处理
    用c.aspx?&a=1&b=3或jquery的$.ajax都可以,具体的你得动手写,不要老问。
      

  8.   


    function xihuan() {
     var selectId = event.srcElement.id;
     var shuzi = selectId.substr(2, 1); //得到数字
     var neirongId = "neirong" + shuzi + ""//得到内容的id
     if (neirongId!=null) {
    var divId = document.getElementById("" + neirongId + "").innerHTML;
    $.post("aa.aspx",{divId:divId},
    function(res){}
    // 这里res就是hotelId返回的值了。
    );
     }
     }
     
      

  9.   

    我的后台方法是 public void  GetLikeNum(string LoginId)
            {
                if (LoginId != "+hotelids+")
                {
                int a = Convert.ToInt32(LoginId);
                hotelmodel = hotelbll.GetModel(a);
                hotelmodel.HotelLike++;
                hotelbll.Update(hotelmodel);
    }
    }
    那我怎样调用我的后台方法呢??
      

  10.   

    refer:
    http://www.cnblogs.com/insus/archive/2013/01/22/2872329.html
      

  11.   

    如果你非得这样直接调用后台方法,那么你就这样来。在页面加入一个ScriptManager
      

  12.   


    我都快急死了,还没弄出来。。加一个ScriptManager控件就可以了吗?
    那我用您的方法,我应该怎样写呢?? 
      

  13.   

    不好意思,按快了,接着。<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
            </asp:ScriptManager>后台的cs方法:[WebMethod]
    public static void  GetLikeNum(string LoginId)
             {
                 if (LoginId != "+hotelids+")
                 {
                 int a = Convert.ToInt32(LoginId);
                 hotelmodel = hotelbll.GetModel(a);
                 hotelmodel.HotelLike++;
                 hotelbll.Update(hotelmodel);
     }
     } 然后js就这样调用:function xihuan() {
                 var selectId = event.srcElement.id;
                 var shuzi = selectId.substr(2, 1); //得到数字
                 var neirongId = "neirong" + shuzi + ""//得到内容的id
                 if (neirongId!=null) {
                    var   divId = document.getElementById("" + neirongId + "").innerHTML;
                    // 比如说这里要调用上面的方法GetLikeNum, 则这样,"a"为方法需要的参数。后面的function为回调函数,可以使用方法返回的返回值。
                       PageMethods.GetLikeNum("a",function(){
                    });
                 }
             } 
      

  14.   


    后面的function为回调函数,可以使用方法返回的返回值。 最后一个function里面是不是还得写 东西?? 些什么?
      

  15.   

    如果你需要执行了这个方法之后还需要做别的事情,那么你就把那些东西写到function里面,如果方法执行完了就结束了,那么就可以不用写了,后面的那个function回调函数都可以不需要。
      

  16.   


     报错: Microsoft JScript 运行时错误: “PageMethods”未定义PageMethods是什么???
      

  17.   

    你页面添加ScriptManager了吗?并且要将它的EnablePageMethods属性值设为true,然后你后台的方法必须是static的,并且要加上[WebMethod]
      

  18.   


    // 这是我前台的代码
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
        </asp:ScriptManager>
        <script type="text/javascript">
            window.onload = function () {
                PageMethods.Test("bbb", function (res) {
                    alert(res);
                });
            };
        </script>
    // 这是我后台的代码
    [WebMethod]
        public static string Test(string a)
        {
            return a;
        }