У меня есть базовая модель просмотра MVC с аннотациями, например:
[Required(ErrorMessage="Your Name Required")]
[Display(Name = "Your Name")]
[DataType(DataType.Text)]
[MaxLength(120, ErrorMessage = "Must be under 120 characters")]
public String YourName { get; set; }
У меня есть строго типизированное представление, основанное на этой модели представления. Когда я запускаю приложение локально, следующий код генерирует метку "Ваше имя":
@Html.LabelFor(model => model.YourName)
Когда приложение развертывается в IIS7 с пулом приложений .NET 4, ярлык говорит "YourName" (без пробела).
Это очень опасно, и я раньше этого не встречал. Кто-нибудь знает, что может быть причиной этого?
Кэш очищается, это было проверено с помощью нескольких веб-клиентов, и результат тот же.
Edit:
@model MVC.Web.Models.ContactUsModel
<div>
@Html.LabelFor(model => model.YourName)
@Html.EditorFor(model => model.YourName)
</div>
Изменить 2 Все аннотации в этом поле игнорируются. Существуют и другие поля типа текста, и они имеют одинаковую проблему. Это происходит только на реальном сервере. Live-сервер - это IIS 7, который был настроен на Plesk 10.2. Интересно, является ли это ошибкой, поскольку я использую RTM MVC 3.
Изменить 3 В той же модели представления у меня есть свойство Email:
[Required(ErrorMessage = "Your Email Is Required")]
[Display(Name = "Your Email")]
[RegularExpression(@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", ErrorMessage = "Your Email Is Invalid")]
[DataType(DataType.Text)]
public String FromEmail { get; set; }
Это свойство используется в представлении:
<div>
@Html.LabelFor(model => model.FromEmail)
@Html.EditorFor(model => model.FromEmail)
</div>
Но он отлично работает:( Таким образом, свойство электронной почты отлично работает как в среде live, так и в среде dev. Другие свойства работают только в среде dev.
Изменить 4 Исправлена проблема удаления аннотаций MaxLength и MinLength. Я все равно хотел бы использовать аннотации MaxLength и MinLength как часть моих подпрограмм проверки модели.
[MinLength(3, ErrorMessage = "Minimum 3 Characters")]
[MaxLength(30, ErrorMessage = "Maximum 30 Characters")]