簡體   English   中英

如何將 javascript 變量放入 Url.Action

[英]How can I put javascript variable into Url.Action

當我從 VS2015 調試運行時,我有一個很好的帖子:

        $("#DisplayChartType").bind("change", function () {
            $.post("../Employee/ChangeDisplayChartType", { displayChartType: $("#DisplayChartType").val() }, function (data) {
                iDependOnMyParameter(data);
            })
        });

但是一旦我發布到 IIS,帖子就不起作用了。 我嘗試在帖子中使用 ../、/ 和 ~/ 但沒有效果。 我在網上搜索並找到了下面的方法,但我仍然將 ARG1 作為參數而不是我的 javascript 變量發送。

        $("#DisplayChartType").bind("change", function () {
            $.post("@Html.Action("ChangeDisplayChartType", "Employee", new { displayChartType = "ARG1" })".replace("ARG1",$("#DisplayChartType").val()) , function (data) {
                iDependOnMyParameter(data);
            })
        });

我該怎么做? 我真的很想繼續使用 $.post 方法,因為它在 VS 中效果很好。

你可以試試這個代碼。

  $("#DisplayChartType").bind("change", function () {
        var chartType = $("#DisplayChartType").val();
        var url="@Url.Action("ChangeDisplayChartType", "Employee", new { displayChartType = "ARG1" })";
        $.post(url.replace("ARG1", chartType), function (data) {
            iDependOnMyParameter(data);
        })
    });

所以把它添加到url

$.post("../Employee/ChangeDisplayChartType?displayChartType=" + encodeURIComponent($("#DisplayChartType").val()), function(){});

或者將您的原始代碼更改為 GET,該值將添加到查詢字符串中。

您可以使用window.location.origindocument.location.origin來獲取您網站的來源,無論是在 VS 2015 調試中還是在 IIS 上運行。

所以而不是做

$.post("../Employee/ChangeDisplayChartType"

你可以試試

$.post(document.location.origin + "/Employee/ChangeDisplayChartType"

@OJ Raqueno 讓我走上了正確的道路。

在腳本頂部,我現在聲明“myPath”。 我的網站 URL 以“secure”結尾,因此此測試為我提供了正確的路徑:

    var myPath = document.URL;
    if (!myPath.endsWith("secure")) {
        myPath = "";
    }

然后我這樣做:

    $("#DisplayChartType").bind("change", function () {

        $.post(myPath + "/Employee/ChangeDisplayChartType", { displayChartType: $("#DisplayChartType").val() }, function (data) {
            alert($("#DisplayChartType").val());
            iDependOnMyParameter(data);
        })
    });

暫無
暫無

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

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