显示日期为月/年,但验证并保存为完整日期mm / dd / yyyy

时间:2015-03-05 23:12:12

标签: c# jquery model-view-controller model bootstrap-datepicker

我有一个日期存储在数据库中作为标准的DateTime格式。我得到了值,并将其显示在mm / yyyy的表单字段中。我的部分视图通过以下显示:

@Html.TextBoxFor(model => model.opinionDate, new { @Value = Model.opinionDate.ToString("MM/yyyy"), @readonly = "readonly" })

我有bootstrap-datepicker连接到日期字段。它被设置为仅允许选择月份和年份。

我的jQuery模型验证失败,因为它看起来不像日期。我该如何验证此值?我可以在验证发生之前修改该值(在当天添加01)吗?

2 个答案:

答案 0 :(得分:0)

由于您的字段是只读的并且日期选择器已经为您提供了所需的值,因此您可能根本不验证字段或将其验证为字符串。然后,如果您需要额外的验证层,请在控制器中执行此操作。查看validating dates的文档。如果您验证为字符串,则可以快速检查以确保您具有适当数量的字符:

$( "#myform" ).validate({  
    rules: {    
        opinionDate: {      
            required: true,
            rangelength: [4, 5]    
               }  
           }});

这将检查字符串是否长度在4-5个字符之间(" 1/15"或" 01/15")。希望这有帮助!

答案 1 :(得分:0)

我能够通过我的控制器解析进出数据库的值来解决它。我的模型将值视为字符串。到现在为止还挺好。我无法在上面进行验证,但我可以稍后处理。由于这是一个Intranet应用程序,因此使用日期选择器就足以获得一个干净的日期。