插入日期时,Model.IsValid始终为false

时间:2011-03-16 12:53:48

标签: asp.net-mvc-3 data-annotations

我有以下课程:

public class Post
{
    [DataType(DataType.Date, ErrorMessage="Please fill in a valid date.")]
    [RegularExpression(@"^\d{1,2}\/\d{1,2}\/\d{4}$", ErrorMessage="Fill in a valid date.")]
    public DateTime? PublishDate { get; set; }
}

在我的编辑操作中我就像这样

[HttpPost]
public ActionResult Edit(Post post)
{
    if (ModelState.IsValid)
    {
        return RedirectToAction("Index");
    }
    else
    {
        return View(post);
    }
}

但我的ModelState始终无效。怎么会?我该如何解决这个问题?

我也在这里发帖:http://forums.asp.net/t/1663783.aspx/1?MVC3+how+to+check+datetime+on+model+with+unobtrusive+javascript+

更新:我发现确实存在错误:

ModelState.Values.Select(x => x.Errors);

但我如何才能知道它是如何实现的呢?更重要的是,我该如何解决?

1 个答案:

答案 0 :(得分:1)

您的正则表达式不适用于您输入的日期。我只是删除它,因为如果模型绑定器无法解析日期,则不会分配DateTime结构。