У меня есть базовая модель представления 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, метка гласит «Ваше имя» (без пробела).
Это очень странно, и я не сталкивался с этим раньше. Есть ли у кого-нибудь идеи, что может быть причиной этого?
Кэш очищен, это было протестировано из ряда веб-сайтов клиентов и результат тот же.
Редактировать:
@model MVC.Web.Models.ContactUsModel
<div>
@Html.LabelFor(model => model.YourName)
@Html.EditorFor(model => model.YourName)
</div>
Редактировать 2 Все аннотации в этом поле игнорируются. Есть и другие поля текстового типа, и у них такая же проблема. Это происходит только на живом сервере. Live-сервер - это IIS 7, настроенный в Plesk 10.2. Интересно, является ли это ошибкой, поскольку я использую MVC 3 RTM.
Edit 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>
Но работает отлично :( Таким образом, свойство email отлично работает как в среде live, так и в среде разработки. Другие свойства работают только в среде разработки. среда разработки.
Редактировать 4 Удаление аннотаций MaxLength и MinLength устранило проблему. Я все же хотел бы использовать аннотации MaxLength и MinLength как часть моей процедуры проверки модели.
[MinLength(3, ErrorMessage = "Minimum 3 Characters")]
[MaxLength(30, ErrorMessage = "Maximum 30 Characters")]