You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从HTML向JavaScript传递参数?ASP.NET代码传值失败

解决ASP.NET按钮传TextBox值到弹窗页面的问题

你的代码核心问题是URL参数拼接的语法错误,加上没对特殊字符做编码,导致参数无法正确传递:

问题点拆解

  • OnClientClick里的'webform5.aspx?alamat=+<%=TextBox5.Text %>+'多了多余的+号,会让最终URL变成webform5.aspx?alamat=+xxx+,目标页面拿到的是带前后+的错误值
  • 没对TextBox内容做URL编码,如果内容包含空格、中文或特殊字符,会直接破坏URL结构

修正后的代码

按钮部分(关键修正)

<asp:Button ID="Button2" 
            OnClientClick="createPopupWin('webform5.aspx?alamat=' + encodeURIComponent('<%=TextBox5.Text %>'),'Google Map', 1200, 650); return false;" 
            runat="server" 
            Text="Map" />

原JavaScript函数(无需修改)

function createPopupWin(pageURL, pageTitle, popupWinWidth, popupWinHeight) {
    var left = (screen.width - popupWinWidth) / 2;
    var top = (screen.height - popupWinHeight) / 4;
    var myWindow = window.open(pageURL, pageTitle, 
                               'resizable=yes, width=' + popupWinWidth 
                               + ', height=' + popupWinHeight + ', top=' 
                               + top + ', left=' + left);
}

目标页面获取参数

在WebForm5.aspx的后台代码里,用以下方式获取传递的参数:

string alamat = Request.QueryString["alamat"];
// 如果是中文,确保页面编码为UTF-8,避免乱码

额外说明

  • 加上return false;是为了阻止ASP.NET按钮默认的服务器回发行为,避免弹窗被浏览器拦截或页面刷新
  • encodeURIComponent()会对特殊字符(空格、中文、&等)做URL编码,保证参数传递的完整性

内容的提问来源于stack exchange,提问作者bux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:33:17