Как получить значение DatePicker в бритве?

Вот моя проблема:

У меня есть вводимый текст и пользовательский интерфейс выбора даты: и я хотел бы получить значение средства выбора даты в бритве:

Index.cshtml

<input id="datePickerCalendar" type= "text"/>

<script type="text/javascript">

$(document).ready(function () {
    $('#datePickerCalendar').datepicker({
        altFormat: "dd-mm-yy",
        dayNamesMin: ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"],
        monthNames: ["Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
        changeMonth: true,
        onSelect: function () {

            /*('#datePickerCalendar').change(loadCalendar());*/
        }
    });
});
</script>



<table border="1" class="tableCalendar" id="calendar">
<caption> Veuillez sélectionner l'horaire souhaité </caption>
<th id="court"></th>
@foreach(var item in Model)  {
  foreach(var court in item.TennisCourts){
      if (court.Outside == true)
      {
          <td id="court" class="court">Court n°@court.Number (Extérieur)</td>
      }
      else
      {
          <td id="court" class="court">Court n°@court.Number (Intérieur)</td>
      }
  }
}

@foreach (var item in Model)
{

    var chooseDate = $('#datePickerCalendar').value; // here ! This instruction is not correct...


}

Я создаю динамический календарь, позволяющий пользователю бронировать теннисный корт...

Итак, мои вопросы:

1) Как получить значение из средства выбора даты в бритве? 2) Как я могу получать значение каждый раз, когда пользователь меняет дату?

заранее спасибо


person Razor    schedule 03.04.2012    source источник
comment
Вы должны опубликовать форму, чтобы получить значение   -  person Anders    schedule 03.04.2012
comment
@ Андерс, его вопрос сбивает с толку, но он спрашивает, как получить его в представлении (он говорит бритва)   -  person mattytommo    schedule 03.04.2012
comment
Я думаю, он хочет знать, как отправлять данные в контроллер, но я могу ошибаться :D Он смешивает код Razor и javascript, что очень запутывает   -  person Anders    schedule 03.04.2012
comment
Ах да, я на самом деле не уверен. Я дал ему инструкции о том, как получить значение в JQuery и подписаться на событие изменения, но если ему нужны данные в контроллере, мне нужно уточнить. Ты этого хочешь, Франческо?   -  person mattytommo    schedule 03.04.2012
comment
Нет: D Я хочу получить это значение в представлении (бритве), нет в JQuery... Извините, мои вопросы сбивают с толку... Во-первых, можно ли использовать значение datepicker в моем представлении (бритва)?   -  person Razor    schedule 03.04.2012
comment
Можете ли вы точно объяснить, для чего вам это нужно, и вставьте больше своего мнения, а затем я обновлю свой ответ :)   -  person mattytommo    schedule 03.04.2012
comment
Хорошо, я обновлю свой ответ   -  person Razor    schedule 03.04.2012
comment
Ах, я вижу, я сбит с толку, как бы значение средства выбора даты было установлено ДО загрузки представления? (вот когда этот код будет выполняться). Или вы загружаете представление через AJAX? Если да, то не проще ли добавить в вашу модель еще одно свойство для хранения календарной даты?   -  person mattytommo    schedule 03.04.2012
comment
Мое представление не загружается через AJAX... Я хотел бы создать такой календарь: boisdelacambre.be/ tableau.php5... На самом деле у меня в базе данных много теннисных клубов и поэтому календарь должен перестраиваться в соответствии с теннисным клубом подключенного пользователя... Так что расписание и номер теннисного корта можно сдача...   -  person Razor    schedule 03.04.2012
comment
Итак, ВОПРОС (глупый вопрос: D): возможно ли получить значение со стороны клиента на сторону сервера, на мой взгляд?   -  person Razor    schedule 03.04.2012


Ответы (1)


Вам нужно опубликовать свое значение в методе действия на контроллере, окружить поле формой

@using (Html.BeginForm("Controller", "Action", FormMethod.Post))
{
}

Затем измените свое поле на отображаемое на стороне сервера (чтобы связыватель модели мог зафиксировать новое значение)

@Html.TextBoxFor(m => m.MyDate)

Метод действия должен принимать модель в качестве аргумента и иметь свойство DateTime с именем MyDate.

изменить: если вы будете отправлять значения с сервера, вам нужно убедиться, что средство выбора даты клиента и серер используют один и тот же формат даты. Это немного сложно, но я сделал это с плагином globalize jquery, вам нужно выбрать, хотите ли вы жестко закодировать культуру пользовательского интерфейса или сервер будет использовать культуру клиента. Это делается в web.config

Жестко запрограммировано

<globalization culture="se-SE" uiCulture="se-SE"  enableClientBasedCulture="false" />

Клиент выбирает

<globalization enableClientBasedCulture="true" />

edit2 Извините за все мои правки: D. Хороший способ отправки настроек сервера, таких как дата и время, — это создать представление бритвы настроек и изменить его тип mime на javascript, также убедитесь, что у вас есть кеширование, иначе клиент будет загружай его каждый раз

@{
    Layout = null;
    Response.Expires = 120;
    Response.CacheControl = "public";
    Response.ContentType = "text/javascript";
}

MyAppName = {};
MyAppName.settings = {
    culture: "@Thread.CurrentThread.CurrentCulture.Name",
    timeFormat: "@Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern.ToLower()",
    dateFormat: "@Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.ToLower().Replace("yyyy", "yy")",
}
person Anders    schedule 04.04.2012