Чтобы вопрос начался, мой код (я постараюсь включить только соответствующие части для начала), начиная с моего сценария:
function RaceDate_onChange() {
var pickedDate = $(this).data('tDatePicker').value();
var month = pickedDate.getMonth() + 1;
$.get("/RaceCard/Details?year=" + pickedDate.getFullYear() + "&month=" + month + "&day=" + pickedDate.getDate());
}
Тогда моя разметка:
@Html.Telerik().DatePickerFor(model => model.RaceDate).ClientEvents(events => events.OnChange("RaceDate_onChange"))
И, наконец, немного о принимающем действии:
[HttpGet]
public ActionResult Details(int year, int month, int day)
{
var viewModel = new RaceCardModel {Metadata = DetailModelMetadata.Display, RaceDate = new DateTime(year, month, day)};
Я пытаюсь получить выбор новой даты, чтобы вызвать GET, чтобы обновить страницу без отправки формы. Это прекрасно работает, за исключением этой проблемы:
В запросах GET к действию Details
значение day
всегда на один день от DatePicker. Например. Первое значение устанавливается из свойства модели представления, когда представление отображается, скажем, 3. Затем я нажимаю 14 и нажимаю на точку останова в методе действия. Значение day
равно 3. Когда я нажимаю 29 и достигаю точки останова, значение day
равно 14.
Помимо вопроса о том, что не так, я возьму на себя свободу и спрошу, есть ли лучший способ, который не является более сложным. Я довольно новичок и предпочел бы доставить рабочий код, который нуждается в пересмотре, чем увязнуть в касаниях и деталях.