1

Я попробовал приложение mvc для тестирования глобализации/локализации. Я создал файл Resources.resx и файл Resources.es.resx (испанский), где у меня есть строки, которые я хочу перевести.ASP.NET MVC DateTime-глобализация. «Дата поля должна быть датой».

Все строки переведены отлично, но с форматом DateTime У меня возникают трудности.

В частичном виде я использую я использую Xd-мягкий DateTimePicker для моего поля даты, как это:

бритвы Синтаксис:

<div class="form-group"> 
     @Html.LabelFor(model => model.Date, htmlAttributes: new { @class = "control-label col-md-3" }) 
     <div class="col-md-10"> 
      @Html.EditorFor(model => model.Date, Resources.FormatSave, new { htmlAttributes = new { @class = "form-control input-sm datetimepicker1" } }) 
      @Html.ValidationMessageFor(model => model.Date, "", new { @class = "text-danger" }) 
     </div> 
    </div> 

и сценарий для DateTimePicker выглядит следующим образом:

<script type="text/javascript"> 

    jQuery('.datetimepicker1').datetimepicker({ 
     format: '@Resources.Format', //when local d.m.Y, when spanish d/m/Y 
     theme: 'dark', 
     lang: '@Resources.Language', 
     closeOnDateSelect: true, 
    }); 

</script> 

Когда я использую испанский формат d/m/Y, это нормально, и когда я использую dmY, я получаю сообщение о подтверждении «Поле Дата должно быть датой».

Моя модель выглядит следующим образом:

[Display(Name = "Date", ResourceType = typeof(Resources.Resources))] 
[Required(ErrorMessageResourceType = typeof(Resources.Resources), 
      ErrorMessageResourceName = "DateRequired")] 
[DataType(DataType.DateTime)] 
public DateTime Date { get; set; } 
+0

у вас получилось? –

ответ

1

Просто попробуйте это. Я нашел это решение, когда формат dd/MM/yyyy не распознан как формат даты.

Сначала создайте новый файл ява скрипт с именем jquery.validate.date.js на код ниже в нем

$(function() { 
    $.validator.methods.date = function (value, element) { 
     if ($.browser.webkit) { 
      var d = new Date(); 
      return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value))); 
     } 
     else { 
      return this.optional(element) || !/Invalid|NaN/.test(new Date(value)); 
     } 
    }; 
}); 

Это перезаписать функцию проверки даты в jquery.validate.js

Затем вызовите скрипт сразу после jquery.validate.js, как показано ниже

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.val.js")"/> 

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.val.date.js")"/> 
+0

Пробовал это, но теперь у меня есть «0x800a138f - ошибка javascript runtime неспособна получить свойство« webkit »неопределенной или нулевой ссылки» – knowkeen

+0

[ссылка] http://stackoverflow.com/questions/24390272/javascript-runtime-error-unable- to-set-property-webkit-of-undefined-or-null-r проверить это – Sachu

+0

Не работает ни ... Я думаю, что моя проблема должна что-то сделать с культурами, а не с браузером ... – knowkeen

Смежные вопросы