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

本文关键字:控制器 mvc 日期 视图 | 更新日期: 2023-09-27 18:20:10

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

查看

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

控制器

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解码,我宁愿控制器中的方法采用日期-时间参数而不是字符串,这似乎有点棘手

谢谢。

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

为什么不直接使用DateTime参数?

@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);
}

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