Asp.net mvc 4 MVC4中开始日期和结束日期之间的日期验证

Asp.net mvc 4 MVC4中开始日期和结束日期之间的日期验证,asp.net-mvc-4,validation,date,range,Asp.net Mvc 4,Validation,Date,Range,我正在做一个程序来过滤两个日期之间的数据,开始日期和结束日期。在我的控制器中,我有: public ActionResult List(DateTime startdate, DateTime enddate) { if (enddate < startdate) { return PartialView("DateValidation"); }

我正在做一个程序来过滤两个日期之间的数据,开始日期和结束日期。在我的控制器中,我有:

 public ActionResult List(DateTime startdate, DateTime enddate)
        {


            if (enddate < startdate)
            {

                return PartialView("DateValidation");
            }
            else
            {
                List<Card> cards = new List<Card>();

                using (var db = new CardDBEntities())
                {

                    var cardr = (from c in db.Cards
                                 join d in db.RegistrationDTs
                                 on c.CardId equals d.CardId
                                 where d.RegistrationDateTime >= startdate &&
                                       d.RegistrationDateTime <= enddate
                                 select new eReader1.Models.Model
                                 {
                                     CardId = d.CardId,
                                     Description = c.Description,
                                     RegistrationDateTime = d.RegistrationDateTime
                                 }).OrderByDescending(x => x.RegistrationDateTime).ToList();


                    //WebGrid grid = new WebGrid(cardr);

                    //ViewData["cardr"] = cardr;



                    return View(cardr);
                }
公共操作结果列表(日期时间开始日期、日期时间结束日期) { 如果(结束日期<开始日期) { 返回部分视图(“日期验证”); } 其他的 { 列表卡=新列表(); 使用(var db=new CardDBEntities()) { var cardr=(从数据库卡中的c开始) 在db.RegistrationDTs中加入d 关于c.cardd等于d.cardd 其中d.RegistrationDateTime>=开始日期&& d、 RegistrationDateTime x.RegistrationDateTime).ToList(); //WebGrid=新的WebGrid(cardr); //ViewData[“cardr”]=cardr; 返回视图(cardr); } 如您所见,该视图替换了我的整个浏览器。我希望在日期框附近以字符串或类似的形式显示错误消息

我该怎么做

提前感谢您

管制员:

 public ActionResult List(DateTime startdate, DateTime enddate) 
        {


                List<Card> cards = new List<Card>();

                using (var db = new CardDBEntities())
                {

                    var cardr = (from c in db.Cards
                                 join d in db.RegistrationDTs
                                 on c.CardId equals d.CardId
                                 where d.RegistrationDateTime >= startdate &&
                                       d.RegistrationDateTime <= enddate
                                 select new eReader1.Models.Model
                                 {
                                     CardId = d.CardId,
                                     Description = c.Description,
                                     RegistrationDateTime = d.RegistrationDateTime
                                 }).OrderByDescending(x => x.RegistrationDateTime).ToList();


                    //WebGrid grid = new WebGrid(cardr);

                    //ViewData["cardr"] = cardr;



                    return View(cardr);
                }

            }
公共操作结果列表(日期时间开始日期、日期时间结束日期) { 列表卡=新列表(); 使用(var db=new CardDBEntities()) { var cardr=(从数据库卡中的c开始) 在db.RegistrationDTs中加入d 关于c.cardd等于d.cardd 其中d.RegistrationDateTime>=开始日期&& d、 RegistrationDateTime x.RegistrationDateTime).ToList(); //WebGrid=新的WebGrid(cardr); //ViewData[“cardr”]=cardr; 返回视图(cardr); } } 观点:

link href="~/Content/themes/base/minified/jQuery-ui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="~/Scripts/jquery-ui-1.8.2.min.js"></script>








@using (Html.BeginForm())
{
    <fieldset>
        <legend>Search criteria</legend>



        @Html.Label("StartDate", "Start Date:")  
         @Html.TextBox("startdate", String.Empty, new { @Class = "startdate" })
        @Html.Label("enddate", "End Date:")
        @Html.TextBox("enddate", String.Empty, new { @Class= "enddate" })



                <input type="submit" value="Apply" />
    </fieldset>
}

<script type="text/javascript">
    $(document).ready(function () {
        $(".startdate").datetimepicker({
            dateFormat: 'mm/dd/yy', timeFormat: 'hh:mm:ss',
            onSelect: function (selected) {
                $(".enddate").datepicker("option", "minDate", selected)
            }
        });

        $(".enddate").datetimepicker({

            dateFormat: 'mm/dd/yy', timeFormat: 'hh:mm:ss',
            onSelect: function (selected) {
                $(".startdate").datepicker("option", "minDate", selected)
            }
        });
    });
</script>
link href=“~/Content/themes/base/minified/jQuery ui.css”rel=“stylesheet”type=“text/css”/
@使用(Html.BeginForm())
{
搜索条件
@标签(“开始日期”,“开始日期:”)
@TextBox(“startdate”,String.Empty,new{@Class=“startdate”})
@标签(“结束日期”,“结束日期:”)
@TextBox(“enddate”,String.Empty,new{@Class=“enddate”})
}
$(文档).ready(函数(){
$(“.startdate”).datetimepicker({
日期格式:“mm/dd/yy”,时间格式:“hh:mm:ss”,
onSelect:功能(已选择){
$(“.enddate”).datepicker(“选项”,“minDate”,选中)
}
});
$(“.enddate”).datetimepicker({
日期格式:“mm/dd/yy”,时间格式:“hh:mm:ss”,
onSelect:功能(已选择){
$(“.startdate”).datepicker(“选项”,“minDate”,选中)
}
});
});
因此,我将jQuery插件用于datetimepicker和其他jQuery ui:

<link href="@Url.Content("~/Content/themes/base/jquery.ui.datepicker.css")" rel="stylesheet" type="text/css" />
<script src="jquery.min.js"></script>
<script src="jquery-ui.min.js"></script>
<script src="/Scripts/jquery-ui-timepicker-addon.js"></script>
<link href="~/Content/themes/base/minified/jQuery-ui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="~/Scripts/jquery-ui-1.8.2.min.js"></script>

您可以编写此类函数。在该函数中,您要做的是禁用“开始日期”字段选择器中“日期之前”的日期,然后显示

$('#enddatep').click(function (e) {
e.preventDefault();
$('.enddate').datepicker('show');

})

如果此开始日期和日期在您的视图中,则您可以在提交表单时使用jQuery验证或在字段中更改焦点时使用jQuery验证来实现此目的。是的,我的开始日期和结束日期在我的视图中。您能告诉我在哪里可以找到示例代码吗