【问题标题】:MVC3 date validationMVC3 日期验证
【发布时间】:2012-08-06 02:21:21
【问题描述】:

http://thewayofcode.wordpress.com/2012/01/18/custom-unobtrusive-jquery-validation-with-data-annotations-in-mvc-3/

我试图使上述链接中的示例工作,但无法正确。我不确定我做错了什么?

我复制了模型验证

 [DataType(DataType.Date)]
    [DisplayName("Start Date of Construction")]
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? StartDate { get; set; }

[DataType(DataType.Date)]
[DisplayNameAttribute("End Date of Construction")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
[DateGreaterThan("StartDate", "Estimated end date of construction must be greater than the start date of the construction")]
public DateTime? EndDateOf { get; set; }

后跟 DateGreaterThan 代码。

在视图中

  @Html.EditorFor(model => model.StartDate)
  @Html.EditorFor(model => model.EndDate)
   @Html.ValidationMessageFor(model => model.StartDate)
   @Html.ValidationMessageFor(model => model.EndDate)

但是,如果有人能提供一些启发,按钮单击不会触发任何事情。这将非常有帮助,甚至任何其他不同的方式都值得赞赏。同样地,在选择下拉菜单并在文本框中输入值。

【问题讨论】:

  • 我们可以看到您将表单数据发回的控制器代码吗?
  • 您所遵循的示例的源代码可从here 下载。下载它并与您尝试过的进行比较,这样您将能够更快地找到解决方案,更重要的是您会很高兴自己找出问题所在。相信我!

标签: c# asp.net asp.net-mvc-3 validation razor


【解决方案1】:
  1. 应该使用[Display(Name="Start Date of Construction")] 而不是[DisplayName("Start Date of Construction")]
  2. 应该使用[Display(Name="End Date of Construction")] 而不是[DisplayNameAttribute("End Date of Construction")]

看看你是否至少得到这个运行。你的数据注解属性搞砸了,网上找样例就行了。

【讨论】:

  • 如果这有帮助,请告诉我!谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多