ASP.NET未定义隐藏字段值

时间:2015-06-17 13:07:37

标签: c# asp.net hidden-field

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

// 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());

2 个答案:

答案 0 :(得分:2)

它不适用于母版页。您需要从Default.aspx调用它或尝试

 $('[id*="hiddenPersonId"]')
主页上的

,但使用此母版页的其他页面不应包含其ID中包含hiddenPersonId的任何控件

答案 1 :(得分:2)

如果你是.net 4+,你可以尝试将ClientIDMode设置为静态。您将要检查它是否已首先定义。如果你想/需要js在母版页上。

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