Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改CultureInfo时从视图到控制器获取空datetime值_C#_Asp.net Mvc_Datetime_Cultureinfo - Fatal编程技术网

C# 更改CultureInfo时从视图到控制器获取空datetime值

C# 更改CultureInfo时从视图到控制器获取空datetime值,c#,asp.net-mvc,datetime,cultureinfo,C#,Asp.net Mvc,Datetime,Cultureinfo,net mvc中,我有一个控制器,它使用jquery datepicker从视图中获取datetime参数,然后传递 使用json向控制器发送的值, 这一切都很好,除了在我的例子中将语言cultureInfo更改为德语时,datetime参数的值始终为null 这是控制器: public JsonResult GetDetails(DateTime? from, DateTime? to) { //Do something.. } <input type

net mvc中,我有一个控制器,它使用jquery datepicker从视图中获取datetime参数,然后传递 使用json向控制器发送的值, 这一切都很好,除了在我的例子中将语言cultureInfo更改为德语时,datetime参数的值始终为null

这是控制器:

 public JsonResult GetDetails(DateTime? from, DateTime? to)
    {
       //Do something..
    }
 <input type="text" id="from" value="@Model.From.ToString("dd/MM/yyyy")" class="datepicker" />

 <input type="text" id="to" value="@Model.To.ToString("dd/MM/yyyy")" class="datepicker" />
模型:

public class UsagesModel
   {
       public DateTime From
    {
        get;
        set;
    }

    public DateTime To
    {
        get;
        set;
    }
}
选择数据并将其传递给控制器的视图:

 public JsonResult GetDetails(DateTime? from, DateTime? to)
    {
       //Do something..
    }
 <input type="text" id="from" value="@Model.From.ToString("dd/MM/yyyy")" class="datepicker" />

 <input type="text" id="to" value="@Model.To.ToString("dd/MM/yyyy")" class="datepicker" />

我能做什么,问题在哪里,因为它在英国和法国文化中都很好用。请帮帮我

我不知道确切的变化,但可能是因为德国使用的日期/时间格式与英语和法语地区不同。我会尝试从javascript中添加一些警报,以便在不同的点上看到您有一个值,然后查看它在哪里变得异常。我怀疑该值仍然存在,但对日期格式不满意,应该是一些.split(“/”)和.join(“/”)函数调用的快速修复方法,并寻址数组的索引。您可以花大量时间为不同文化的mvc应用程序获取正确的格式

   public JsonResult GetDetails(string from, string to)
        {
           var fromDate = DateTime.Parse(from);
           var toDate = DateTime.Parse(to);
           //Do something..
        }
正如Khan在评论中提到的,您可以将其设置为
DateTime.ParseExact()
,这样您就不会遇到其他文化问题


我应该使用什么字符串格式传递给控制器?@inna如果使用此解决方案,您会选择哪种格式。请确保您正在控制器中分析此格式。@matrixuly A
ParseExact
在这里更有意义,因为
Parse
仅在区域性与字符串匹配时才起作用。非常感谢您的帮助!德国使用
作为日期分隔符,而不是
/
。当您的
StringToJSONDate
函数期望它们看起来像
08/07/2015
时,您的输入将包含一个类似
08.07.2015
的值。