伊朗、以色列和沙特阿拉伯等一些国家使用他们的特殊日历。例如公历日期“ 2012-12-11 ”在伊朗历中是“ 1391-09-21 ”。由于许多原因(例如数据库功能),我们决定将日期变量以公历日期格式存储在数据库中。当我们想要为此构建 UI 时,挑战就开始了。在asp.net mvc
其中很容易创建模板并将DateTime
变量更改为合适的格式。但问题在于模型绑定器无法识别返回值的回mvc
发(请注意,月份中的天数与公历日期不相等)。解决此问题的一种方法是解析传入的结果,例如:
[HttpPost]
public ActionResult Create(Content person,string customBirthdayDate)
{
person.Birthday = CustomDateTimeHelper.Parse(customBirthdayDate);
Service.Save(person);
return RedirectToAction("List");
}
哪个工作正常,但我正在寻找更好的解决方案。一个想法是将模型更改为:
public class Person
{
public int Id{set;get;}
public string Name{set;get;}
public DateTime Birthday{set;get;}
public string CustomBirthdayDate
{
set{Birthday = CustomDateTimeHelper.Parse(value);}
get{return CustomDateTimeHelper.ConvertToCustomDate(Birthday); }
}
}
在这种方法中,不需要在 Controllers Action 中编写额外的代码。有更好的主意吗??谢谢你。