[英]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.origin
或document.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.