我有以下功能(在 file.aspx.cs 中):
private void Alert(string message)
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
"alertMessage", $"alert('{message}')", true);
}
當我連續呼叫此函式兩次或更多次時,螢屏上只會彈出第一個警報。例如
protected void Button1_Click(object sender, EventArgs e)
{
// button1 on click event
Alert("First alert"); // this does show up on the screen
Alert("Second alert"); // this does not show up
}
這是為什么?
uj5u.com熱心網友回復:
您需要為這些腳本塊提供不同的鍵,例如alertMessage1和alertMessage2。來自微軟檔案:
客戶端腳本由其密鑰和型別唯一標識。具有相同鍵和型別的腳本被認為是重復的。該頁面只能注冊一個具有給定型別和密鑰對的腳本。嘗試注冊已注冊的腳本不會創建該腳本的副本。
不過我不推薦這種編碼風格。相反,我建議使用 API 端點并使用 JavaScript 而不是服務器端 C# 代碼來驅動 UI。這很笨重。每次按下按鈕都會導致整個頁面重新加載和服務器端呈現,然后腳本塊被插入到 HTML 代碼中,這使得快取變得不可能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/536427.html
上一篇:利用和妥協之間有什么區別?
