2015-02-22 3 views
0

В моей Person модели я получил BirthDate недвижимости:HTML выход отличается от развернутого и местного

[DisplayName("Date of Birth")] 
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)] 
[DataType(DataType.Date)] 
public DateTime BirthDate { get; set; } 

В Edit зрения я получил рождение поля даты ввода отображается:

<div class="form-group"> 
      @Html.LabelFor(model => model.BirthDate, htmlAttributes: new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model => model.BirthDate, new { htmlAttributes = new { @class = "form-control" } }) 
       @Html.ValidationMessageFor(model => model.BirthDate, "", new { @class = "text-danger" }) 
      </div> 
     </div> 

На локальном хосте производит HTML:

<input class="form-control text-box single-line valid" data-val="true" data-val-date="The field Date of Birth must be a date." data-val-required="Pole Date of Birth jest wymagane." id="BirthDate" name="BirthDate" type="date" value="2014-10-02"> 

и значение поля отображается в браузере после того, как страница loa ded: enter image description here

Я опубликовал свое приложение, но полученный HTML немного отличается. Он не содержит слова valid, а формат value отличается: "2/5/2015" вместо "2014-10-02".

<input class="form-control text-box single-line" data-val="true" data-val-date="The field Date of Birth must be a date." data-val-required="The Date of Birth field is required." id="BirthDate" name="BirthDate" type="date" value="2/5/2015"> 

Это приводит к тому, что дата не отображается в поле ввода, пока я не установил ее datepicker.

enter image description here

Я хочу, чтобы вести себя так же, как локально развернуто приложение.

Я нахожусь в Польше. Приложение было развернуто на серверах myasp.net, которые, я уверен, находятся в англосаксонской стране с другим форматом даты. Это может быть проблемой?

+0

У меня была проблема, как это, которое было вызвано в файл существующего в моем локальном рабочем пространстве, но я не включил его в проект, так что не будет скопирован на удаленный сервер во время развертывания. Это нормально работает на localhost, но после развертывания это не сработает. – wf4

+2

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

ответ

1

Я думаю, вы должны настроить свою культуру в своем веб-проекте вручную. При этом настройки культуры на сервере развертывания не будут применяться.

web.config

<globalization uiCulture="pl" culture="pl-PL" /> 

см MSDN - How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization

Если вы обеспокоены глобализацией вашего проекта вы можете изменить культуру одной страницы слишком

yourPage.aspx

<%@ Page UICulture="pl" Culture="pl-PL" %> 

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

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
public DateTime BirthDate { get; set; } 
+0

Может ли это убить дальнейшую глобализацию веб-сайта? Под этим я подразумеваю, что даже если бы у меня была французская версия строк в файлах ресурсов, и кто-то с французским браузером откроет мой сайт, он все равно увидит английскую версию? – Yoda

+0

Я добавил несколько подробностей, которые могут вам помочь –

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

  • Нет связанных вопросов^_^