[英]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 錯誤,這可能是服務器配置的問題。
這是斜體,這個也是。
這是大膽的,就像這樣。
useEffect(() => { var aScript = document.createElement("script");
aScript.type = "text/javascript";
aScript.src = "./js/main.js";
}, []); 如果確實需要,您可以將它們結合起來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.