Я использую JQuery Date Time Picker в приложении MVC3. Я использую дату и время, чтобы отфильтровать результаты для списка. Ниже показано, как выглядит мой поисковый URL
/Objectives?Description=&FromDate=03%2F10%2F2011
выбранный формат даты и времени - 03 октября 2011 г.
но когда оно разрешено в контроллере, оно принимается за 10 марта 2011 года.
выбранная культура en-GB
.
но при использовании в форме Ajax эта проблема не существует, потому что Ajax URL автоматически устанавливается как
/Objectives?Description=&FromDate=10%2F03%2F2011
Я использую следующие строки кода для форматирования даты и времени в DateTimePicker.
$(function () {
$(".datePicker").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'dd/mm/yy',
altField: 'dd-mm-yy',
altFormat: 'dd/mm/yy'
});
});
ниже приведен код редактора для DateTime
@model DateTime?
@{
var htmlAttributes = new Dictionary<string, Object>();
htmlAttributes.Add("class", "datePicker");
htmlAttributes.Add("readonly", "true");
}
@Html.TextBox(string.Empty, (Model.HasValue ? Model.Value.ToString() : string.Empty), htmlAttributes)
мы используем следующую модель для получения данных от пользователя.
public class LogModel : LogBaseModel
{
[Display(Name = "From Date")]
public DateTime? FromDate { get; set; }
[Display(Name = "To Date")]
public DateTime? ToDate { get; set; }
}
следующий код в index.cshtml
@using (Html.BeginForm("Index", "Calls", Model, FormMethod.Get))
{
<div id="filter_set_wrapper">
@Html.Custom().FilterLabelFor(model => model.FromDate)
@Html.Custom().TextBoxFor(model => model.FromDate)
@Ajax.TextBoxClear("FromDate", "FromDateClear(#FromDate#, ##);", "Clear From Date", "PopUpLink.PNG")
</div>
<div id="filter_set_wrapper">
@Html.Custom().FilterLabelFor(model => model.ToDate)
@Html.Custom().TextBoxFor(model => model.ToDate)
@Ajax.TextBoxClear("ToDate", "ToDateClear(#ToDate#, ##);", "Clear To Date", "PopUpLink.PNG")
</div>
<input type="submit" class="btn" value="Filter" />
}
следующий метод контроллера
public ActionResult Index(LogModel callsModel)
{
if (callsModel.FromDate != null)
{
var model = callsModel;
var d = DateTime.Parse(model.FromDate.Value.ToString("MM/dd/yyyy"));
}
}
Может кто-нибудь помочь мне в решении этого вопроса. Первый ответ дает правильную дату и время. Но проблема в том, что при использовании с вышеупомянутой моделью не удалось получить правильную дату для метода контроллера. Если кто-нибудь знает, как исправить это с вышеупомянутой моделью, пожалуйста, ответьте.
Спасибо заранее.