У меня есть пользовательское связывание массива объектов в IEnumerable заказов в действии контроллера
HTML:
<input class='textBox' name='bookings[0].Date' type='text' value='01/01/2001' />
<select name='bookings[0].StartTime' class='startTime'>
<option value="7">7:00</option>
<option value="7.5">7:30</option>
<option value="8">8:00</option>
<option value="8.5">8:30</option>
</select>
<select name='bookings[0].EndTime' class='endTime'>
<option value="7">7:00</option>
<option value="7.5">7:30</option>
<option value="8">8:00</option>
<option value="8.5">8:30</option>
</select>
....
<input class='textBox' name='bookings[5].Date' type='text' value='01/01/2001' />
<select name='bookings[5].StartTime' class='startTime'>
<select name='bookings[5].EndTime' class='endTime'>
Действие контроллера:
public ActionResult CreateEvent(IEnumerable<BookingDetails> bookings)
{
....
}
И контейнер класса для привязки
public class BookingDetails
{
public string Date { get; set; }
public float StartTime { get; set; }
public float EndTime { get; set; }
}
Коллекция "bookings" параметра действия контроллера абсолютно правильно содержит данные, если культура страницы - en-US, но если это "fr-FR", плавающие значения для времени равны 0
например:
- Дата: 01.01.2001
- Время начала: 0
- EndTime: 10
- Дата: 01.01.2001
- Время начала: 11
- Время окончания: 0
, где 0 - десятичное значение: 8,5 или 12,5, например.
У меня не может быть значений с запятой и точкой для разных культур из-за сложного расчета JavaScript на странице, который поддерживает только период для плавающих чисел.
Кто-нибудь знает обходной путь для отправки данных на контроллер с «инвариантным» типом культуры?
Спасибо