簡體   English   中英

window.onload with querystring 不適用於已部署的 MVC6 項目

[英]window.onload with querystring Not working on deployed MVC6 project

我一直在開發一個可以顯示一些數據的網站。 在表格中,每一行都有一個按鈕可以打開一個新的 window,用戶可以在其中查看與該行相關的數據。

我正在使用 MVC 6,我使用 Javascript 打開 window 並通過查詢字符串傳遞“id”參數。

我的代碼是:

父視圖.cshtml:

按鈕:

wButtonClass = "btn btn-warning openW"; 
<a href="javascript:void(0);" class="@wButtonClass" data-id=@id.ToString()>@buttonText</a>

劇本:

<script>       
$(document).ready(function () {
            $(".openW").click(function (e) {    
                var x = $(this).data("id"); 
                var new_window = window.open('/MyView/HandleButton?id='+x, '_blank', 'left=200,top=150,width=1000,height=800,toolbar=1,resizable=0');
  });
});
</script>

Controller:

public IActionResult HandleButton(int id)
{
            
//Filling the List

return PartialView("DataView", myList);
}

因此,它在 VS 中工作得很好,但是當我將項目部署到 IIS 服務器(不在我的機器上)時,它會打開新的 window,並顯示“404 - 未找到”,盡管新打開的 window 中的 URL是正確的(值被傳遞)

可能是什么問題呢?

我一直在瀏覽幾個論壇問題,但找不到答案。

更新 1:

好吧,技術上,在彈出窗口 window 中,URL 是:http://localhost/MyView/HandleButton?id=5 它在 404 錯誤詳細信息中說:請求 URL http://localhost/MyView/HandleHandlehost:80/ =5 物理路徑 C:\.netpub\wwwroot\MyView\HandleButton

更新 2:

好吧,我終於找到了答案。 它看起來很愚蠢,但解決了問題。 我在這里找到了: IIS 8 看不到局部視圖

我必須更改 URL 並添加應用程序名稱:所以,而不是: /MyView/HandleButton?id='+x我輸入: /MyWebApp/MyView/HandleButton?id='+x

好吧,它在服務器上工作,但在 VS 中不起作用。 它會很好(我每次調試時都更改 URL),但是有沒有辦法更優雅地做到這一點?

如果路由不正確並且 URL 不正確,這可能是預期的。 但是,由於您的 URL 是正確的,但您仍然看到 404 錯誤,這可能是服務器配置的問題。

  • 驗證 IIS 服務器是否具有訪問應用程序文件和文件夾的正確權限。
  • 檢查 IIS 服務器是否安裝了正確的 .NET 框架版本,以及您的應用程序是否以正確的版本為目標。
  • 確保 IIS 服務器安裝了正確的 MVC 版本,並且您的應用程序以正確的版本為目標。
  • 檢查 IIS 服務器是否配置為處理對 .cshtml 文件的請求。
  • 確保在應用程序的 web.config 文件中正確配置了 MVC 路由。
  • 檢查IIS服務器是運行在32位還是64位模式。 確保您的應用程序是為相同的模式構建的。
  • 確認服務器能夠找到您的應用程序需要的 DLL 和程序集。
  • 檢查事件日志以獲取任何信息。

這是斜體這個也是。

這是大膽的,就像這樣

useEffect(() => { var aScript = document.createElement("script");

aScript.type = "text/javascript";

aScript.src = "./js/main.js";

}, []); 如果確實需要,您可以它們結合起來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM