2015-07-11 115 views
0

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

.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 
    } 
+0

您是否验证过它在回发前实际上包含值?你怎么做回发顺便说一句? – Andrei

+0

@Andrei我在我原来的帖子下发布了相关的代码。 – Azeem

+0

谢谢。但是这并没有回答第一个问题。你有没有尝试调试或控制台或任何东西来验证隐藏字段收到任何价值? – Andrei

回答

0

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

0

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

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