我目前正在確保一個主要使用IE11構建并運行的舊版MVC4網站能夠在其他瀏覽器上運行。 我們正在測驗的第一個瀏覽器是 Edge Chromium,但我們遇到了一個發生彈出視窗的問題。
當彈出視窗發生時,我們傳遞了一個查詢字串,就像這樣:
。http:/localhost/Gen/DataExport?cntId=100& InitialLoad=True& showProgress=False& startExport=False
where
cntId是我們的記錄識別符號 。
InitialLoad是一個真/假值,讓系統知道這是用戶第一次進入這個頁面(它做一些需要重繪 頁面的操作)showProgress是一個真/假值,讓系統知道顯示某些操作的進度(我們在第一次加載頁面時不顯示) 。
startExport是一個真/假值,告訴系統何時匯出某些資料(最初不使用) 。
在控制器的代碼中,我們有一個HttpGet方法用于加載頁面。 該方法接收cntId、InitialLoad、showProgress和startExport
在使用IE11時,一切都按預期進行。 傳入的引數到達并被正確讀取。
然而,我們發現的問題是,當 Edge Chromium、Chrome 和 Firefox 試圖加載該頁面時,查詢字串到達時的資料不正確。
每個瀏覽器都顯示cntId為100,但是InitialLoad由于某種原因為false。
我不知道為什么這個頁面不能正確地傳遞引數,而其他所有的頁面都可以。 這可能是由于系統正在打開一個新視窗,但我不確定。
編輯:
由于一些人無法閱讀我的問題,所以我將在這里更明確地說明,并附上這個問題的標簽。
這是一個 MVC4 應用程式,在后端使用 C#,并與 Oracle 資料庫掛鉤。 這是一個由政府物體使用的專案,他們仍然使用 IE11。
IE11的支持將于8月結束。 很明顯,上述政府物體仍然需要使用這個 MVC4 應用程式。 因此,我試圖確保它在 Edge(Chromium 版本)、Chrome、Firefox 和 Safari 中運行。
現在廢話不多說了,來看看我的代碼示例。 我有一個視圖,上面有一個鏈接。 該鏈接呼叫了一個 Javascript 函式,該函式將打開一個彈出視窗。 代碼如下:
function OpenGen(/span>) {
var url = '@Url.Action("DataExport", "Gen", new { cntId = @Session["cntId"], InitialLoad = true, showProgress = false, startExport = false })'/span>;
//Open the new window for the Gen.
window.open(url, "GenWindow", 'height=' screen. height ',width=' screen.width ',resizable=yes,scrollbars=yes,toolbar=no,menubar=no, location=yes')。)
}
在鏈接被點擊后,服務器在GenController中執行以下代碼:
[]
public ActionResult DataExport(【Optional, DefaultParameterValue(-1)]int cntId,
[Optional, DefaultParameterValue(false)]bool InitialLoad,
[Optional, DefaultParameterValue(false)]bool showProgress,
[Optional, DefaultParameterValue(false)]bool startExport>。
{
if (InitialLoad)
{
...
}
}
我正在對InitialLoad的if陳述句進行除錯。 使用IE11時傳入的引數是正確的。
cntId = 100, InitialLoad = true, showProgress = false, startExport = false
然而,當對Edge、Chrome、Firefox和Safari進行除錯時,我得到了以下引數:
cntId = 100, InitialLoad = false, showProgress = false, startExport = false<
我不確定為什么Edge、Chrome、Firefox和Safari會丟失這些引數。 這四個的網址與IE11的相同。
現在,說到這里,我們歡迎對這個問題的任何想法。
uj5u.com熱心網友回復:
我搞清楚了這個問題。 由于一些奇怪的原因,Edge、Chrome、Firefox和Safari都不能正確處理'&'。 我知道ampersand是一個被編碼的值,但奇怪的是,每個瀏覽器都不能自行解碼。 當我為他們做了簡化處理后,它就成功了。
由于一些奇怪的原因,IE11是唯一能處理它的瀏覽器。
不管怎樣,這只是在打開一個彈出視窗時,引數沒有得到特別處理的一個奇怪現象。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/319280.html
標籤:
上一篇:當用戶改變鑰匙時保存模型出錯
下一篇:Nodejs遞回函式完成后執行
