【问题标题】:ASP.NET Empty value of Hidden Label fieldASP.NET 隐藏标签字段的空值
【发布时间】:2015-07-11 18:42:16
【问题描述】:

我在 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
    }

【问题讨论】:

  • 您是否在回发之前验证过它实际上包含一个值?顺便说一句,你是如何进行回发的?
  • @Andrei 我已经在我的原始帖子下的 JQuery 部分发布了相关代码。
  • 谢谢。但这并不能回答第一个问题。您是否尝试过调试或控制台或任何方法来验证隐藏字段是否收到任何值?
  • 好观察!!我已经调试了代码,似乎 JQuery 在设置隐藏字段值时抛出了一些错误。错误是:SCRIPT5022: Syntax error, unrecognized expression: #&lt;%=userrole.ClientID%&gt;
  • 您的 jquery 代码是在单独的文件中,还是 asp.net 页面的一部分?

标签: c# jquery html asp.net webforms


【解决方案1】:

问题的原因是我在单独的脚本文件中运行 JQuery 方法(设置 ASP 隐藏标签)。我在 ASPX 页面中移动了该方法,现在它工作正常。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-07-25
      • 1970-01-01
      • 2013-09-03
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多