ASP.NET隐藏标签字段的空值

本文关键字:空值 字段 标签 NET 隐藏 ASP | 更新日期: 2023-09-27 18:02:18

我在ASPX页面上有一个隐藏控件,我在JQuery方法中设置值。在后面的代码中,当我试图读取值时,它会为隐藏字段提供空值。下面是代码:

。ASPX代码:

<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1"
            data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
            Sign-in as <span id="Span1" class="caret"></span>
</button>
<asp:HiddenField ID="userrole" runat="server" />
JQuery代码:

$('.dropdown-menu a').click(function () {
    $("#dropdownMenu1").html($(this).text() + '<span class="caret"></span>');
    $('#<%= userrole.ClientID%>').val($(this).text());
});
$('#Sign_in_form').submit(function (e) {
    var selectedRole = $("#dropdownMenu1").text().trim();
    if (selectedRole == "Sign-in as" || selectedRole == null || selectedRole == "") {
        alert("Please select your Role!");
        e.preventDefault();
    }
    else {
        alert("Signing in as: " + selectedRole);
    }
});

背后的代码:

if (IsPostBack)
    {
        string role = userrole.Value; //THIS GIVES EMPTY VALUE
    }

ASP.NET隐藏标签字段的空值

我的问题的原因是我在一个单独的脚本文件中运行JQuery方法(设置ASP隐藏标签)。我把这个方法移到了ASPX页面,现在它工作得很好。

您必须根据您的要求设置会话变量。

//set the value on some action...
Session["provSel"] = {value};
...
if (IsPostBack)
{
    if (Session["provSel"] != null)
    {
        string role = Session["provSel"].ToString();
    }
}