我想问我还能尝试什么?
我正在用C#编写一个ASP.NET Core 7 Web API,我试图从数据库中更改一个名为Startdate
的DateTime
类型字段,以自定义其格式。
字段的格式是YYYY-MM-DD HH:mm:ss (CE.)
,当输出到Swagger Json时,我得到了YYYY-MM-DDTHH:mm:ss
。
我想要的是YYY/MM/DD HH:mm:ss (ROC.)
。
我曾试图在视图模型中将其类型设置为字符串,在实现中,我从LINQ中获得了它,但失败了...
我的视图模型:
public class ABCViewModel
{
public DateTime? startDate { get; set; }
}
在action方法中实现:
public async Task<List<ABCViewModel>> RetrieveAllAsync()
{
List<ABCViewModel> ABC = new List<ABCViewModel>();
try
{
var aa = await dbABC.tableABC
.Select(st
=> new ABCViewModel
{
startDate = st.Startdate.Value.ToString()
})
.OrderByDescending(d => d.startDate)
.ToListAsync();
return aa;
}
catch (Exception ex)
{
logger.LogError(ex, "RetrieveAllAsync Error");
}
return ABC;
}
控制器:
[Route("api/[controller]")]
[ApiController]
public class ABCController : ControllerBase
{
private readonly IABC abc;
public ABCController(IABC abc)
{
this.abc = abc;
}
// GET: api/<ABCController>
[HttpGet]
public async Task<List<ABCViewModel>> GetABC()
{
var result = await abcService.RetrieveAllAsync();
return result;
}
}
接口:
public interface IABC
{
Task<List<ABCViewModel>> RetrieveAllAsync();
}
很抱歉我的错误语法和奇怪的描述,希望我提供的代码可以帮助我描述...
如果还有什么我能做的,我会很感激的。
感谢你的帮助.
我尝试过的:
1.变更:
startDate = st.Startdate.Value.ToString()
(if用这个,只有CE。:日-月-年)
收件人:
startDate = (st.Startdate.Value.Year - 1911).ToString() + "/"
+ st.Startdate.Value.Month + "/"
+ st.Startdate.Value.Day + " "
+ st.Startdate.Value.Hour + ":"
+ st.Startdate.Value.Minute + ":"
+ st.Startdate.Value.Second
得到:
112/1/1 0:0:0
我想要:
112/01/01 00:00:00
(几乎!
2.加:public DateTime? startDate { get; set; }
以上[DisplayFormat(DataFormatString = " {0:yyy/MM/dd HH:mm:ss} ")]
但一切都没有改变。
3.添加:.AsEnumerable()
更改为:
var abc = await dbABC.tableABC
.OrderByDescending(d => d.startDate)
.ToListAsync()
.AsEnumerable()
.Select(st
=> new ABCViewModel
{
startDate = st.Startdate.Value.ToString(),
});
得到:AsEnumerable()
只能在ToList()
使用,ToListAsync()
不能使用。
4.我想把我的代码改成:stackoverflow01
但因为我的工作有合作者,所以我不能这样做,以避免其他得到任何问题。
5.我发现:stackoverflow02
所以我试图改变我的控制器上的格式,但也许我失败了,因为我没有足够的能力。
1条答案
按热度按时间kmpatx3s1#
我终于发现我的错误了!
只在try{}的action方法中更改我的Implementation:
到
会成功的。
真是出乎意料!感谢@RolandMai和@Fildor的帮助,也许我在LINQ上有点能力...?