Как лучше всего разбирать финики в подшивке

Это хороший подход в привязке модели, используйте такой код:

TryParseDate(result.AttemptedValue, format, out parsedDate) 

И тогда «формат» - это переменная с другим (специфичным для клиента) форматом даты. Вроде 31.12.2013 или 31.12.2013 или другие.

У меня большая проблема с привязкой формата, потому что, если пользователь помещает дату только с одной цифрой, например: 1/1/2014, она не будет анализироваться, потому что в значении "формат" разрешены форматы: дд / ММ / гггг Я знаю, что это возможно решить, заменив этот формат на d / M / yyyy, и тогда он работает в обоих случаях, но это хороший подход или это опасно?

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


person Sergey    schedule 10.07.2013    source источник
comment
хороший вопрос. столкнулся с аналогичными проблемами с форматами даты в asp.net mvc   -  person Andrei    schedule 10.07.2013


Ответы (1)


Я бы порекомендовал оставить связыватель модели по умолчанию, чтобы он выполнял свою работу, он неплохо справляется с этим и решит проблемы локализации (например, разные форматы даты для разных локалей) за вас.

Учтите, что всегда будут ограничения на то, как пользователь может вводить дату (например, вы не разрешаете им вводить yyyy-MM-dd, даже если это допустимый формат даты). Ваш настраиваемый код связующего не изменит этого, потому что он предоставляет формат.

Я предлагаю, чтобы ваша цель состояла в том, чтобы разрешить пользователям вводить даты в наиболее обычном для них формате (например, dd/MM/yyyy в Великобритании или Испании, MM/dd/yyyy в США и т. Д.). Это касается большинства случаев. Если вам нужно обслуживать пользователей в разных регионах, связыватель модели по умолчанию сделает все за вас, если вы установите культуру потока для пользовательского сеанса:

string cultureCode = "en-GB";    //retrieve eg. from user profile
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureCode)

Если вы хотите помочь пользователям, которые вводят даты в других форматах, просто поместите на своей странице подсказку, объясняющую ожидаемый формат.

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

person Paul Taylor    schedule 11.07.2013