C#,MVC,EnityFramework,如何处理数据
我有这些数据 我想把天转换成英语值 例如: “星期六” “星期日” 此代码:C#,MVC,EnityFramework,如何处理数据,c#,json,asp.net-mvc,string,C#,Json,Asp.net Mvc,String,我有这些数据 我想把天转换成英语值 例如: “星期六” “星期日” 此代码: [HttpGet] public JsonResult GetTime() { var data = _db.CourseTimes .GroupBy(c => c.Day) .ToDictionary(g => g.Key, v => v.Select(c => new { start = TimeSpan.FromHours(c.Sta
[HttpGet]
public JsonResult GetTime()
{
var data = _db.CourseTimes
.GroupBy(c => c.Day)
.ToDictionary(g => g.Key, v => v.Select(c => new { start = TimeSpan.FromHours(c.StartTime)
.ToString("hh':'mm"), stop = TimeSpan.FromHours(c.EndTime).ToString("hh':'mm") }));
return Json(data, JsonRequestBehavior.AllowGet);
}
退回这个:
{"الاحد":[{"start":"01:00","stop":"02:00"},{"start":"01:00","stop":"02:00"},{"start":"14:00","stop":"20:00"}],"السبت":[{"start":"01:00","stop":"02:00"},{"start":"05:00","stop":"08:00"},{"start":"07:00","stop":"06:00"}]}
我想让它退回这个:
尝试使用
CultureInfo
,或者您必须将单词映射到表或静态列表中,并比较该单词…尝试使用CultureInfo
,或者您必须将单词映射到表或静态列表中,并比较该单词…好的,下面是一个实现方法:
[HttpGet]
public JsonResult GetTime()
{
var english_names = (new CultureInfo("en-US")).DateTimeFormat.DayNames
.Select((v, i) => new { Key = i, Value = v })
.ToDictionary(o => o.Key, o => o.Value);
var arabic_names = (new CultureInfo("ar-EG")).DateTimeFormat.DayNames
.Select((v, i) => new { Key = i, Value = v })
.ToDictionary(o => o.Key, o => o.Value);
var data = _db.CourseTimes
.GroupBy(c => c.Day)
.ToDictionary(g => english_names.FirstOrDefault(p => p.Key == arabic_names.FirstOrDefault(a => a.Value == g.Key).Key).Value, v => v.Select(c => new
{
start = TimeSpan.FromHours(c.StartTime).ToString("hh':'mm"),
stop = TimeSpan.FromHours(c.EndTime).ToString("hh':'mm")
}).ToList());
return Json(data, JsonRequestBehavior.AllowGet);
}
基本上,您只需要为每种语言创建两个名称列表,并获取阿拉伯语名称的英文索引,该索引位于第二个列表中。好的,下面是一个实现方法:
[HttpGet]
public JsonResult GetTime()
{
var english_names = (new CultureInfo("en-US")).DateTimeFormat.DayNames
.Select((v, i) => new { Key = i, Value = v })
.ToDictionary(o => o.Key, o => o.Value);
var arabic_names = (new CultureInfo("ar-EG")).DateTimeFormat.DayNames
.Select((v, i) => new { Key = i, Value = v })
.ToDictionary(o => o.Key, o => o.Value);
var data = _db.CourseTimes
.GroupBy(c => c.Day)
.ToDictionary(g => english_names.FirstOrDefault(p => p.Key == arabic_names.FirstOrDefault(a => a.Value == g.Key).Key).Value, v => v.Select(c => new
{
start = TimeSpan.FromHours(c.StartTime).ToString("hh':'mm"),
stop = TimeSpan.FromHours(c.EndTime).ToString("hh':'mm")
}).ToList());
return Json(data, JsonRequestBehavior.AllowGet);
}
基本上,您只需要为每种语言创建两个名称列表,并获得阿拉伯语名称的英文索引,该索引位于第二个列表中