asp:HiddenField的jQuery更新无法在回发之间持续存在

|| 我在sitecore(这是一个ascx控件)中有一个子布局,其中包含一个隐藏字段和一个图像映射。根据要单击的图像映射的区域,我要设置隐藏字段的值,然后启动回发到服务器。 我的标记如下:
<script type=\"text/javascript\">
function SetRegion(regionName) {
    $(\'#<%=hdnRegion.ClientID%>\').val(regionName);
    __doPostBack(\'<%=lnkRedirectButton.UniqueID%>\', \'\');
}
</script>

<img src=\"/Images/Interface/Map-Background.png\" usemap=\"#regionMapView\" class=\"map\" />
<map id=\"regionMapView\" name=\"regionMapView\">
    <area id=\"x\" href=\"javascript:SetRegion(\'x\')\" shape=\"poly\" coords=\",,,,\" />
    <area id=\"y\" href=\"javascript:SetRegion(\'y\')\" shape=\"poly\" coords=\",,,,\" />
    <area id=\"z\" href=\"javascript:SetRegion(\'z\')\" shape=\"poly\" coords=\",,,,\" />
</map>

<asp:HiddenField ID=\"hdnRegion\" runat=\"server\" />
<asp:LinkButton ID=\"lnkRedirectButton\" onclick=\"lnkRedirectButton_Click\" runat=\"server\" />
我的后台代码如下:
    protected void lnkRedirectButton_Click(object sender, EventArgs e)
    {
        string region = hdnRegion.Value; //at this point, I expect hdnRegion.Value to be \"x\" \"y\" or \"z\" but it\'s always coming back empty :-(
        //do stuff...
    }
我添加了虚拟LinkBut​​ton用作回发的钩子(创建用于处理回发的代码隐藏方法)。 我已经在独立的Web应用程序中尝试过此代码,并且看起来工作正常,所以我想知道Sitecore是否发生了某些事情,从而在回发过程中混淆了隐藏字段的值? 澄清;已在服务器上激发并处理回发事件,确定,并且我已经在javascript中使用alert()来确认正确设置了隐藏字段值。 编辑: 重新标记的问题以包含jquery-ui标记。 这个问题似乎与以下事实有关:所有这些都发生在div内部,该div使用jQuery UI库中的$()。dialog()方法显示...     
已邀请:
正如我的编辑中提到的,此问题与以下事实有关:隐藏字段(以及其他所有内容)位于div内,该div使用jQuery UI对话框方法操作以创建弹出窗口。 我发现了这个问题(由javascript修改的HiddenField值未发回) 这给了我答案,并且涉及到在对话框方法构造函数中的open:回调中添加一行代码。 我打开对话框的JavaScript代码进行了如下修改:
$(\'#MyDialog\').dialog({
    closeOnEscape: true,
    open: function(event, ui) {
        $(this).parent().appendTo(\"form\"); //this line sorted everything!
    }
}); 
引用DanaBenson的话:“我相信根本原因是jQueryUI将对话框附加到BODY标记而不是FORM标记,而.Net需要在对话框中。”     
为什么不将值作为回发参数而不是隐藏字段值传递回去,因为您只是在进行立即回发?     
尝试使用ClientID代替UniqueID __doPostBack(\'<%= lnkRedirectButton.ClientID%> \',\'\');     

要回复问题请先登录注册