2012-04-03 4 views
0

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

У меня есть входной текст и за датой захватывающего Ui: и Я хотел бы получить ценность 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) Как получить значение из DatePicker в бритве? 2) Как я могу получить значение каждый раз, когда пользователь меняет дату?

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

+0

Вы должны опубликовать форму, чтобы получить значение – Anders

+0

@Anders его вопрос сбивает с толку, но он просит, как получить его в представлении (он говорит, как бритва) – mattytommo

+0

Я думаю, что он хочет знать, как отправить данные в контроллер, но я могу ошибаться: D Он смешивает код Razor и javascript, очень запутанный – Anders

ответ

2

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

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

Затем измените поле в сторону сервера оказанной один (So модель связующее может захватить новое значение)

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

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

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

HARDCODED

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

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

<globalization enableClientBasedCulture="true" /> 

edit2 К сожалению для всех моих правок: D Хороший способ для отправки параметров сервера, как DateTime и например, создать режим бритвы настроек и изменить его тип 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")", 
} 
Смежные вопросы