如何在控制器输出的模型或Linq查询中设置日期格式



我有一个API控制器,它呈现无限滚动插件使用的JSON结果。不幸的是,我看不到任何使用插件本身格式化输出的方法,所以在将输出发送到控制器之前,我必须确保输出格式正确。

我遇到了DateTime的问题,因为我能找到的所有格式化它的示例都依赖于在视图中使用服务器端代码。这不是一个无限滚动的选项。

最好这应该在LINQ查询或模型中完成。我试着把我的型号改成:

[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime? Date
{
get;
set;
}

这不起作用。同样,将链接查询的select子句中Date=p.Date的部分更改为Convert.ToDateTime(p.Date(.ToString("dddddd-MMMM-dd,yyyy"(也不起作用,因为您无法将字符串隐式转换为日期或其他内容。最后一个例子正是我在视图中的做法。

如何在API控制器的JSON中复制该输出?

新:小数似乎也是如此。我的价格应该包括两个小数,但控制器中的JSON输出只有用户输入的数量。这导致了20.5美元,后面跟着0美元和22.55美元。最后一个当然是正确的。

我的价格模型如下:

[Required(ErrorMessage = "Price Required!")]
[Range(.00, Double.PositiveInfinity, ErrorMessage = "Must Be Positive Number!")]
[Display(Name = "Price:")]
[DataType(DataType.Currency)]
[Column(TypeName = "decimal(18, 2)")]
public decimal? Price { get; set; }

试试这个。。。

public DateTime? Date { get; set; }
public string StringDate  
{ 
set => Date?.ToString("0:MM/dd/yyyy")
}

最新更新