在我的ASCX中,我有一個定義爲<asp:HiddenField ID="hdnNewAsset" runat="server" />
的asp.net隱藏字段。Asp.net隱藏字段沒有代碼後面的值,但*是*保留值回發後
在後面我有以下代碼代碼:現在
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()
}
發生了什麼事是我的隱藏字段正在標記中設置(鉻顯示[ <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"]
顯示98d88e72-088c-40a4-9022-565a53dc33c4
,並回傳後,我的隱藏字段的值相同(因此隱藏字段是在回發持續),但我無法通過hdnNewAsset.Value
訪問此值。
誰能看到我「米做錯了嗎?
指定'hdnNewAsset'的代碼在哪裏?它通過'IsPostBack'檢查來保護嗎? – Kami
在回發週期的什麼時候你試圖訪問該字段的值?如果你在視圖狀態被加載之前這樣做了,那麼你會得到一個空字符串。另外,你使用的是什麼瀏覽器?我在Chrome中看到類似這樣的問題(但僅在Chrome中)。嘗試其他瀏覽器,看看你是否得到相同的結果。 –
@Kami:沒有什麼值得設置,我只能通過前端 – KallDrexx