我正在使用Kedno网格开发MVC应用程序。 我有一个带有属性的模型项:
public bool IsPaid { get; set; }
public Nullable<DateTime> PaymentDate { get; set; }
在视图中的Kedno网格中:
columns.Bound(c => c.PaymentDate).Format("{0:dd-MMM-yyyy}");
当我在网格中编辑并将IsPaid设置为false时,逻辑必须将PaymentDate设置为null。
例如,我有一个物品,其中PaymentDate为2016年9月22日,IsPaid为true
。
在Kendo网格中编辑后,此项目设置IsPaid为false,当我单击Save Changes时,将调用控制器中的方法Update:
public ActionResult Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<ItemViewModel> items)
{
if (ModelState.IsValid)
{
//
}
}
但ModelState无效:"The value '9/22/2016 12:00:00 AM' is not valid for...".
如果PaymentDate是2016年9月1日,则ModelState有效。
另外,我按照Globalization section中的步骤进行操作。
在web.config中:
<globalization uiCulture="bg-BG" culture="bg-BG"></globalization>
在控制器中:
protected override void Initialize(RequestContext requestContext)
{
Thread.CurrentThread.CurrentCulture =
Thread.CurrentThread.CurrentUICulture =
new CultureInfo(requestContext.HttpContext.Request.UserLanguages[0]);
base.Initialize(requestContext);
}
在视图中:
@{
var culture = System.Globalization.CultureInfo.CurrentCulture.ToString();
}
<script src="@Url.Content("~/scripts/cultures/kendo.culture." + culture + ".min.js")"></script>
<script>
kendo.culture("@culture");
</script>
有什么建议吗?
非常感谢!
答案 0 :(得分:0)
此问题与服务器和客户端上的匹配区域性无关。根据我的观察,您已经正确地遵循了本文。
模型视图无效的原因是您已将列的Format方法设置为类似于“ dd-MMM-yyyy ”的格式。尝试将格式设置为:
columns.Bound(c => c.PaymentDate).Format("{0:dd/mm/yyyy}");
或者,您可以出于测试目的删除格式,并检查日期是否正确传递。您可以稍后再放回去。