ASP.NET 隐藏字段值未定义

ASP.NET undefined from hiddenfield value

我正在尝试从隐藏字段中获取值,但收到未定义的警报。我究竟做错了什么?

// Masterpage
...
<body>
    <div class="container">
        <asp:ContentPlaceHolder ID="MasterContent" runat="server"></asp:ContentPlaceHolder>
    </div>
    <script>
        $(document).ready(function () {
            alert($('#hiddenPersonId').val());
        });
    </script>
</body>

// Default.aspx
<asp:Content ID="Content" ContentPlaceHolderID="MasterContent" runat="Server">
    <asp:HiddenField ID="hiddenPersonId" runat="server" Value="1" />
</asp:Content>

我尝试了其他解决方案,但这些也不起作用:

alert($("#<%= hiddenPersonId.ClientID %>").val());

在母版页中不起作用。您需要从 Default.aspx 或尝试

调用它
 $('[id*="hiddenPersonId"]')

在母版页上,但使用此母版页的其他页面不应有任何在其 id

中包含 hiddenPersonId 的控件

如果您使用的是 .net 4+,则可以尝试将 ClientIDMode 设置为静态。您需要先检查它是否已定义。如果你 want/need js 会出现在母版页上。

<script type="text/javascript">
        $().ready(function () {
            alert($('#hdnPersonId').val());
        });
</script>
<asp:HiddenField ID="hdnPersonId" Value="1" runat="server" ClientIDMode="Static" />