在我的 ASCX 中,我有一个 asp.net 隐藏字段定义为<asp:HiddenField ID="hdnNewAsset" runat="server" />
.
在后面的代码中,我有以下代码:
protected void Page_Load(object sender, EventArgs e)
{
_service = new ArticleDataService(PortalId);
if (!IsPostBack)
{
string rawId = Request[ArticleQueryParams.ArticleId];
DisplayArticleDetails(rawId);
}
if (hdnNewAsset.Value.Trim() != string.Empty)
ProcessNewAsset();
}
现在,在我的前端,我有一个 javascript 函数来响应事件并设置隐藏字段并触发回发:
function assetSelected(assetGuid) {
$('input[id*="hdnNewAsset"]').val(assetGuid);
__doPostBack()
}
发生的事情是我的隐藏字段被设置在标记中(chrome显示[
<input type="hidden" name="dnn$ctr466$Main$ctl00$hdnNewAsset" id="dnn_ctr466_Main_ctl00_hdnNewAsset" value="98d88e72-088c-40a4-9022-565a53dc33c4">
]
为$('input[id*="hdnNewAsset"]')
)。
但是,当回发发生时,hdnNewAsset.Value
是一个空字符串。
更令人费解的是,在Page_Load
Request.Params["dnn$ctr466$Main$ctl00$hdnNewAsset"]
shows的开头98d88e72-088c-40a4-9022-565a53dc33c4
和回发之后,我的隐藏字段具有相同的值(因此隐藏字段在回发中持续存在),但我无法通过hdnNewAsset.Value
.
谁能看到我做错了什么?