首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >结合使用asp.net和javascript

结合使用asp.net和javascript
EN

Stack Overflow用户
提问于 2011-08-01 16:32:15
回答 3查看 90关注 0票数 2
代码语言:javascript
运行
复制
//aspx
<script type="text/javascript">

   function linkRenderer(value, meta, record) {
     var customerUrl = '<%=GetPageUrlWithQuery(Pages.CustomerDetails) %>';
     return String.format("<a href='{0}'>{1}-{2}</a>",customerUrl, value, record.id);
  }
</script>


//aspx.cs
public string GetPageUrlWithQuery(Pages pageType, string param = null){
//..................
} 

如何向'<%=GetPageUrlWithQuery(Pages.CustomerDetails) %>'方法传递javascript参数record.id

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-01 16:38:07

如果我对您的问题理解正确的话,您正在尝试将一个javascript参数传递给服务器端方法。可以这样做的方法是使用到服务器的ajax post。

代码语言:javascript
运行
复制
$.ajax(
        {
            url: url,
            type: "GET",
            data: { id: record.Id },
            dataType: "json",
            success: function(response, status) {
                        //Do some work                           
            }
          }
        );
票数 1
EN

Stack Overflow用户

发布于 2011-08-01 16:37:27

您不能这样做,因为ASP.NET页面的生命周期。

对C#代码的嵌入式调用:

代码语言:javascript
运行
复制
<%=GetPageUrlWithQuery(Pages.CustomerDetails) %>

在页面呈现时,在发送到浏览器之前,在服务器上执行。

在服务器处理完成后,Javascript代码在浏览器内的客户机上执行。到那时还不能访问您的C#方法(至少不能直接访问)。

如果希望从Javascript调用服务器端代码,则需要使用Ajax (或类似的东西,但Ajax是最简单的)。

不过,如果可以的话,可以在服务器端完成所有这些工作,因为与在服务器上处理页面期间完成所有工作相比,通过Ajax回调服务器的开销很大。

票数 1
EN

Stack Overflow用户

发布于 2011-08-01 16:39:00

我不认为有一种简单的方法可以做到这一点,GetPageUrlWithQuery函数将在服务器上运行,因此它将无法访问JavaScript变量。

如果必须这样做,我通常会将JavaScript变量赋给一个隐藏字段,然后在服务器端函数中取出隐藏字段的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6895896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档