我正在尝试将两个查询字符串参数从 JavaScript 获取到 Controller 。这是代码:
JavaScript
var startDate = "",
enddate = "";
var startDate = $.datepicker.formatDate(dateFormat, $("#startDate").datepicker('getDate'));
var enddate = $.datepicker.formatDate(dateFormat, $("#endDate").datepicker('getDate'));
if (startDate != "" || enddate != "") {
window.location = `${window.location.href}/Index?startDate=${startDate}&endDate=${enddate}`;
}
C#
public IActionResult Index([FromQuery(Name = "startDate")] string startDate = "", [FromQuery(Name = "endDate")] string endDate = "")
{
}
Controller 被调用,第一个参数是 fin,但第二个参数得到的是 URL 的困惑版本。这是一张图片。我很难弄清楚我做错了什么。
JavaScript 值
C# 值
最佳答案
从您发布的内容来看,问题可能出在 windows.location.href
上,并且您正在连接到 URL 中已存在的值。例如,如果您的 href 是
http://www.somesite/Index?startDate=1&endate=2
那么你的连接字符串将是:
http://www.somesite/Index?startDate=1&endate=2/Index?startDate=1&endDate=2
你的值(value)观是:
startDate: 1
endDate: 2/Index/startDate=1
要解决此问题,您可以尝试使用 window.location.hostname
而不是 href。
更新
我认为你应该使 URL 相对:
window.location = `/Index?startDate=${startDate}&endDate=${enddate}`;
关于javascript - 无法获取查询字符串数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51480893/