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

如何在TypeScript文件中获取ASP.NET HiddenField的值?

解决TypeScript获取ASP.NET HiddenField值的问题

问题原因

你原来的TS代码无法运行,核心问题有两个:

  • TypeScript文件是静态资源,ASP.NET服务器不会解析其中的<%= %>服务器端标签,所以<%= hdnGOfromLocalStorage.ClientID %>不会被替换成实际的客户端ID,导致找不到目标控件。
  • document.getElementById返回的是HTMLElement|null类型,不能直接赋值给string类型变量,需要获取控件的value属性。

解决方案

提供两种可行的实现方式:

方式1:在ASPX页面定义全局变量传递ClientID

在ASPX页面的<script>标签中,先将服务器控件的客户端ID输出为全局变量,再在TypeScript中引用:

<!-- ASPX页面中添加 -->
<script>
    // 输出控件的客户端ID到全局变量
    window.hdnGOfromLocalStorageId = '<%= hdnGOfromLocalStorage.ClientID %>';
</script>

TypeScript中获取值:

// 获取控件元素,断言为HTMLInputElement(HiddenField渲染后是input[type=hidden])
const hiddenField = document.getElementById(window.hdnGOfromLocalStorageId) as HTMLInputElement;
// 安全获取值,默认回退到初始值"-1"
const xxx: string = hiddenField?.value || '-1';

方式2:设置ClientIDMode为Static(推荐)

直接修改ASPX页面的HiddenField控件,设置ClientIDMode="Static",这样客户端ID会和服务器端ID完全一致,无需动态获取:

<asp:HiddenField ID="hdnGOfromLocalStorage" runat="server" Value="-1" ClientIDMode="Static" />

TypeScript中直接通过固定ID获取值:

const hiddenField = document.getElementById('hdnGOfromLocalStorage') as HTMLInputElement;
const xxx: string = hiddenField?.value || '-1';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:56:00