【发布时间】:2021-05-26 23:34:22
【问题描述】:
我有一个带有以下选项的选项卡:
Tab1 Tab2 Tab3 Tab 4 Tab 5
January February Last 3 Months Last 6 Months Last 12 Months
现在基于上面选择的选项卡,我想调用我的服务器端 API 并过滤掉数据。
方法一:
Public ActionResult FilterData(Datetime from, Datetime to)
{
// Filter out data between 2 dates
}
方法2:
Public ActionResult FilterData(string selectedTab) // Tab1 or Tab2 or Tab3 etc...
{
if(selectedTab =="Tab1")
{
// Construct datetime object for Jan month
//filter jan data;
}
....
}
我看到第二种方法的唯一问题是我可能选择了不合适的日期,因为我将使用服务器端 api 获取日期和时间,而服务器的日期可能与客户端的日期不同。
如果有人能指引我正确的方向,我将不胜感激。
那么我应该采用哪种方法以及为什么?
【问题讨论】:
-
服务器的日期可能与客户端的日期不同是什么意思?你的意思是因为时区?如果是这种情况,则需要在执行查询之前将本地时间转换为 UTC。
-
@Fran 是的,因为时区。所以你建议我应该采用第二种方法吗?
-
不,我只是建议 1. 您要么需要通过时区并在某个地方进行翻译。在哪里取决于你。您的 api 可能只期望 UTC 时间。如果是这种情况,我会在客户端进行翻译,并且只传递 UTC 日期。但对我来说,方法 1 会更有意义。 API 对选项卡了解多少?这些是 UI 问题,应该保留在 UI 中。
-
@Fran 所以在客户端,我应该使用 javascript 来获取时区,然后构造日期,然后将其传递给服务器端 API?
-
只使用内部的javascript Date 函数。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript asp.net ajax rest asp.net-web-api