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验证来实现此目的。是的,我的开始日期和结束日期在我的视图中。您能告诉我在哪里可以找到示例代码吗