javascript - 无法获取查询字符串数据

标签 javascript c# asp.net-core request query-string

我正在尝试将两个查询字符串参数从 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 值

enter image description here

C# 值

enter image description here

最佳答案

从您发布的内容来看,问题可能出在 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/

相关文章:

javascript - 使用transformRequest添加授权 header

javascript - 如何在执行另一个之前等待 ajax 成功处理程序完成

c# - 检查字符串中是否为根域

c# - IsAssignableFrom、IsInstanceOfType 和 is 关键字,有什么区别?

c# - 在 ASP.NET Core Identity UI 中更改路由?

asp.net-core - 使用 Asp.Net Core 进行 self 更新/卷影复制

javascript - React 等待来自 API 的特定响应

javascript - 你如何使用 Firebug 检查 javascript 超时?

c# - 在 linq 查询中有条件地填充匿名类型成员

entity-framework - 使用 Repository 和工作单元模式(重新访问)...在 EF Core 和 ASP.NET Core