Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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
将日期从视图传递到控制器mvc/c#_C#_Asp.net Mvc_Datetime_Razor - Fatal编程技术网

将日期从视图传递到控制器mvc/c#

将日期从视图传递到控制器mvc/c#,c#,asp.net-mvc,datetime,razor,C#,Asp.net Mvc,Datetime,Razor,我有一个使用日期范围过滤器的网页,当用户单击“过滤器”操作链接时,选定的日期范围会传回控制器,控制器返回带有过滤模型数据的“索引”视图 看法 控制器 public ActionResult FilterDateRange(string from, string to) { var fromDate = DateTime.Parse(HttpUtility.UrlDecode(from)); var toDate = DateTime.Parse(HttpUtility.UrlDe

我有一个使用日期范围过滤器的网页,当用户单击“过滤器”操作链接时,选定的日期范围会传回控制器,控制器返回带有过滤模型数据的“索引”视图

看法

控制器

public ActionResult FilterDateRange(string from, string to)
{
    var fromDate = DateTime.Parse(HttpUtility.UrlDecode(from));
    var toDate = DateTime.Parse(HttpUtility.UrlDecode(to));

    //do stuffs

    return View("Index", statsPages);
}
我的问题是,有没有一种更优雅的方式来做到这一点?目前,日期值在视图中进行url编码,然后在控制器中进行url解码,我更希望控制器中的方法采用日期时间参数而不是字符串,这看起来有点老套


谢谢。

为什么不直接使用日期时间参数呢

@Html.ActionLink("Filter", "FilterDateRange", new { from = Model.FromDate, to = Model.ToDate }, null)

public ActionResult FilterDateRange(DateTime from, DateTime to)
{
    var fromDate = from;
    var toDate = to;

    //do stuffs

    return View("Index", statsPages);
}

如果您让模型绑定器完成它的工作,您就不必担心编码、解码或解析。

是的,谢谢。我假设您无法将原始日期时间传递回去,因为这会损坏URL,但似乎模型绑定器会按照您所说的那样处理此问题。
@Html.ActionLink("Filter", "FilterDateRange", new { from = Model.FromDate, to = Model.ToDate }, null)

public ActionResult FilterDateRange(DateTime from, DateTime to)
{
    var fromDate = from;
    var toDate = to;

    //do stuffs

    return View("Index", statsPages);
}