Мой проект имеет интерфейс, через который пользователь может вводить диапазон дат, и будут отображаться записи между этими датами.
Это мой взгляд Модель с двумя строками.
public class SearchByDate
{
public string Date1 { get; set; }
public string Date2 { get; set; }
}
Это представление для этого представления. Модель
@using (Html.BeginForm())
{
<div class="form-group col-sm-6">
<label>From</label>
@Html.EditorFor(model => model.Date1, new { htmlAttributes = new { @class = "form-control datepicker", required = "required", placeholder = "From" } })
<div class="help-block with-errors"></div>
</div>
<div class="form-group col-sm-6">
<label>To</label>
@Html.EditorFor(model => model.Date2, new { htmlAttributes = new { @class = "form-control datepicker", required = "required", placeholder = "To" } })
<div class="help-block with-errors"></div>
</div>
<div class="col-sm-12">
<input style="float: right ; background-color:white; color:#e60053 " type="Submit" class="btn" value="Generate Report" onmouseover=" this.style.backgroundColor = '#e60053', this.style.color = 'white' " onmouseout=" this.style.backgroundColor = 'white', this.style.color = '#e60053'">
</div>
}
Jquery для тех @ HTML.EditorFor
@section scripts{
<script src="~/scripts/jquery-ui-1.12.1.js"></script>
<script>
$(function () {
$(".datepicker").datepicker({
dateFormat: "yy-mm-dd",
changeMonth: true,
changeYear: true,
yearRange: "1950:2019",
//minDate: new Date(2018, 0, 1),
maxDate: new Date(2019, 0, 1),
showOn: "both",
buttonText: "Select"
});
});
</script>
}
Итак, я взял данные, и по этим двум полям ввода я выполняю запрос к моему коду
var result = (from entity in Dbset.ToList()
where DateTime.Parse(entity.Date) >= DateTime.Parse(@from) &&
DateTime.Parse(entity.Date) <= DateTime.Parse(to)
select entity);
Это работает отлично, но если я даю недопустимую дату, например, если я передал "2018" или "12" или что-то еще, что не является допустимой датой, он выдает исключение по запросу " Строка не была распознана как действительный DateTime.".
Каков наилучший способ справиться с этим?