首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于datetime.now,ModelState.IsValid始终为false

由于datetime.now,ModelState.IsValid始终为false
EN

Stack Overflow用户
提问于 2015-04-25 13:21:20
回答 1查看 2.5K关注 0票数 2

我有一个ASP.NET MVC应用程序,在编辑和创建操作中,我通过datetime.now设置了我的类的日期字段。一切正常,我可以添加和编辑记录。但是当我想要删除这些记录时,ModelStata.IsValid总是为false,错误是"The value '4/25/2015 9:34:39 AM' is not valid for register time.",注册时间是我的字段的显示名称。

下面是我的操作代码:

代码语言:javascript
复制
public ActionResult Create([DataSourceRequest]DataSourceRequest request, InvtGroups invtGroup)
{
    if (invtGroup != null && ModelState.IsValid)
    {
        invtGroup.DDate = DateTime.Now;
        repo.Insert(invtGroup);
    }
    return Json(new[] { invtGroup }.ToDataSourceResult(request, ModelState));
}
[HttpPost]
public ActionResult Delete([DataSourceRequest]DataSourceRequest request, InvtGroups invtGroup)
{
    if (invtGroup != null && ModelState.IsValid)
        repo.Delete(invtGroup);
    return Json(new[] { invtGroup }.ToDataSourceResult(request, ModelState));
}

这是我的模型(我首先使用实体框架代码):

代码语言:javascript
复制
public class InvtGroups : User
{
    [Key]
    [Column(TypeName = "VARCHAR"), StringLength(21)]
    public string CGroupCode { get; set; }

    [Column(TypeName = "VARCHAR"), StringLength(50)]
    public string CGroupName { get; set; }

    [Column(TypeName = "BIGINT")]
    public Int64? LiCode1 { get; set; }

    [Column(TypeName = "BIGINT")]
    public Int64? LiCode2 { get; set; }

    [Column(TypeName = "BIGINT")]
    public Int64? LiCode3 { get; set; }

    [Column(TypeName = "BIGINT")]
    public Int64? LiCode4 { get; set; }

    [Column(TypeName = "BIGINT")]
    public Int64? LiCode5 { get; set; }
}

和user类:

代码语言:javascript
复制
public class User
{
    [Column(TypeName = "VARCHAR"), StringLength(20)]
    public string CUserNo { get; set; }

    [Column(TypeName = "DATETIME")]
    public DateTime? DDate { get; set; }
}
EN

回答 1

Stack Overflow用户

发布于 2015-04-25 14:31:51

您可以执行以下操作:

1- _Layout.cshtml

代码语言:javascript
复制
 <script>
        kendo.culture("en-GB");
        var culture = kendo.culture();
        culture.calendar.patterns.d = "dd MMM yyyy"; // 25 Feb 2015
        culture.calendar.patterns.D = "dd MMM yyyy";
        culture.calendar.patterns.t = "HH:mm";   // 16:45
        culture.calendar.patterns.T = "HH:mm";
        culture.calendar.patterns.g = "dd MMM yyyy HH:mm";
        culture.calendar.patterns.G = "dd MMM yyyy HH:mm";
 </script>

2- Global.asax

代码语言:javascript
复制
   protected void Application_BeginRequest(object sender, EventArgs e)
        {

            CultureInfo info = new CultureInfo("en-GB");
            info.DateTimeFormat.ShortDatePattern = "dd MMM yyyy";
            info.DateTimeFormat.LongDatePattern = "dd MMM yyyy HH:mm";
            info.NumberFormat.CurrencyDecimalDigits = 2;
            info.NumberFormat.CurrencyGroupSeparator = ",";
            info.NumberFormat.NumberDecimalDigits = 2;
            Thread.CurrentThread.CurrentCulture = info;
            Thread.CurrentThread.CurrentUICulture = info;
        }

上面的代码将为整个应用程序设置日期格式和数字格式

3-有关如何添加culture js files的更多信息,请阅读本文

希望它能对你有所帮助,如果你还有任何问题,请继续。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29861336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档