从javascript方法将日期传递给c#函数

从javascript方法将日期传递给c#函数,javascript,c#,Javascript,C#,我正在调用一个c#函数,该函数返回一个FileContentResult。但是,日期没有作为参数传递给c#函数,并且始终显示为null。我错过了什么: Javascript代码: function exportResponses() { window.location = "/Blah/ExportResponse? questionnaireID=0&clinicID=0&responseStartDate='19/10/2019'"; } C#

我正在调用一个c#函数,该函数返回一个
FileContentResult
。但是,日期没有作为参数传递给
c#
函数,并且始终显示为
null
。我错过了什么:

Javascript代码:

function exportResponses()
{  
     window.location = "/Blah/ExportResponse?
        questionnaireID=0&clinicID=0&responseStartDate='19/10/2019'";
}
C#函数


尝试以格式传递日期(即,在传递到视图之前使用)。

尝试以下代码:

function exportResponses()
{  
      var startDate = new Date('10/10/2019').toISOString();
      window.location = "/SMS/ExportResponse?
      questionnaireID=0&clinicID=0&responseStartDate="+startDate ;
}
在c#函数中,尝试以所需格式将参数
responseStartDate
解析为
DateTime

DateTime startDate = DateTime.ParseExact(responseStartDate, "yyyyMMdd")

针对您的问题,您必须将日期作为字符串发送到
控制器
方法:

public FileContentResult ExportResponse(int questionnaireID = 0, int clinicID = 0, string responseStartDate=null)

然后,您可以在方法中相应地处理字符串值。

尝试将日期分隔为天、月和年,因为在URL变量中使用“/”不是好的做法


您可以尝试以下方法:

window.location = "/SMS/ExportResponse?
      questionnaireID=0&clinicID=0&day="+startDate.day+"&month="+startDate.month+"&year="+startDate.year

我收到以下错误:SCRIPT5001:SCRIPT5001:预期数量。这就是我写的:newdate(responseStartDate).toISOString()很难判断您是否真的在传递值。当您将
responseStartDate
传递给
Date
构造函数时,是否确实填充了
responseStartDate
。但是,该值是这样传递的:2019年10月19日。我碰到了你提供的链接,它在那里断开了well@Baahubali可能是将该日期字符串解释为MM/dd/yyyy,因此在“第19个月”时失败。是的,我同意,但我没有简单的方法将其转换为dd/MM/yyyy格式。您告诉我的与@Den在下面的回答相同。但是,它不起作用。我使用的是IE 11。toISOString返回一种格式
yyyy-MM-dd'HH:MM:ss.fff'Z'
,因此ParseExact不会接受它与您的格式一起使用。其他参数的非零值到达了吗?请尝试将日期作为字符串发送到您的
控制器
方法:
公共文件内容结果导出响应(int questionnaireID=0,int clinicID=0,string responseStartDate=null)
,然后您可以在您的方法中相应地处理字符串值。这是有效的。如果您回答了,我将接受它。您能尝试“yyyy-MM-dd”的日期格式吗,那么“2019-10-19”?如何将它们分开?如手动前两个字符是日期等?只需按/或拆分即可-
window.location = "/SMS/ExportResponse?
      questionnaireID=0&clinicID=0&day="+startDate.day+"&month="+startDate.month+"&year="+startDate.year