C# 如何在页面加载之前执行jquery脚本?

C# 如何在页面加载之前执行jquery脚本?,c#,javascript,jquery,asp.net,C#,Javascript,Jquery,Asp.net,我需要在ASP.NET应用程序中加载页面之前执行javascript 我的函数返回用户位置,我希望将值传递给服务器端并根据位置加载数据 问题是javascript函数在页面加载后执行 这是我的密码: $(function () { getLocation(); }); 在getLocation函数中,我设置了隐藏字段值 $("#<%= HfLocation.ClientID %>").val(location); 我需要在ASP.NET应用程序中加

我需要在ASP.NET应用程序中加载页面之前执行javascript

我的函数返回用户位置,我希望将值传递给服务器端并根据位置加载数据

问题是javascript函数在页面加载后执行

这是我的密码:

    $(function () {
        getLocation();
    });
在getLocation函数中,我设置了隐藏字段值

$("#<%= HfLocation.ClientID %>").val(location);
我需要在ASP.NET应用程序中加载页面之前执行javascript

这种要求毫无意义。记住ASP.NET的工作原理:

  • 用户请求点击web服务器
  • web服务器将请求发送到ASP.NET引擎
  • ASP.NET引擎实例化页面并贯穿整个页面生命周期
  • 页面呈现为HTML并发送到客户端
  • 客户端浏览器构建DOM,运行客户端javascript
  • 您可以看到,不可能在步骤3之前执行步骤5(其中执行Page_Load事件)

    我需要在ASP.NET应用程序中加载页面之前执行javascript

    在这种情况下,您需要发出两个页面请求。您无法通过单个页面请求完成此操作,因为page_Load()在HTML+JS发送到客户端之前运行

    取而代之的是,创建一个小页面,进行JS调用,然后对当前页面进行回发,或者(可能更好)加载一个新页面。您可以通过常规(非服务器)表单传递位置数据,也可以通过在客户端上设置JS中的cookie,或者将其编码到查询字符串中


    当第二个页面/请求的page_Load()事件触发时,它将拥有您需要的数据。

    使用javascript执行ajax回调以请求数据

    为什么不将隐藏字段值放入会话或url参数?但我认为问题不会改变。只有当页面加载时,该值才可用。我认为在加载页面之前该值是可用的,您应该了解ASP.NET页面生命周期,我猜如果不可能,如果在javascript执行后需要加载数据,最好的方法是什么?@German,这将取决于什么数据以及要加载到哪里。另外,您的具体情况是什么,您正试图实现什么。。。
    protected void Page_Load(object sender, EventArgs e)
            {
                var location = HfLocation.Value;
            }