2012-04-03 87 views
0

這裏我的問題:如何在剃鬚刀中獲取DatePicker值?

我有一個輸入文本和日期選擇器UI背後:我想在剃刀獲得日期選擇器的值:

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)每當用戶更改日期時,我怎樣才能得到這個值?

在此先感謝

+0

你必須張貼的形式來獲取值 – Anders 2012-04-03 14:11:59

+0

@Anders他的問題是混亂的,但他詢問如何得到它的觀點(他說剃刀) – mattytommo 2012-04-03 14:15:59

+0

我認爲他想知道如何發送數據到控制器,但我可以是錯誤的:D他混合剃刀和JavaScript代碼,非常混淆 – Anders 2012-04-03 14:17:01

回答

2

你需要你的價值張貼到控制器上的操作方法,圍繞該領域與形式

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

然後你的領域變成呈現一個服務器端(所以模型綁定可以捕捉新值)

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

的操作方法需要把模型作爲參數,它需要有一個DateTime屬性命名指明MyDate

編輯: 如果您將從您需要確保客戶端日期選擇器和塞雷爾語使用相同的日期格式服務器在發送的值。這有點棘手,但我用全球化的jquery插件做了這個,你必須選擇是否要硬編碼ui文化,或者服務器是否使用客戶端文化。這是在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")", 
}