Ich habe das gleiche Problem.
Ich nehme an, dass "Microsoft .NET Framework 4.5 Language Pack" nicht auf Azure "Websites" installiert ist. Es scheint, dass die Verwendung eines "Azure-Cloud-Projekts" eine Option ist, da Sie IIS dann direkt konfigurieren können.
Eine andere Lösung ist für Microsoft warten Language Pack Unterstützung in Azure schließen ...
personnaly, ich habe beschlossen, die wichtigsten Attribute außer Kraft zu setzen. Die meisten Trickiests sind [Required] und [Regex]. Siehe unten (Loc ist meine eigene Lokalisierungsfunktion, wie ich bin mit gettext)
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Web.Mvc;
namespace Ic.DataAnnotations
{
public class RequiredLoc : RequiredAttribute, IClientValidatable
{
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata,
ControllerContext context)
{
yield return new ModelClientValidationRule
{
ErrorMessage = FormatErrorMessage(metadata.DisplayName),
ValidationType = "required"
};
}
public override string FormatErrorMessage(string message)
{
base.FormatErrorMessage(message);
return Localizer.Loc("Le champs '%1' est requis.", message);
}
}
}
Für reguläre Ausdrücke:
using System.ComponentModel.DataAnnotations;
using System.Globalization;
namespace Ic.DataAnnotations
{
public class RegularExpressionLoc : RegularExpressionAttribute
{
private readonly string _errorMessage;
public RegularExpressionLoc(string errorMessage, string pattern)
: base(pattern)
{
_errorMessage = errorMessage;
}
public override string FormatErrorMessage(string input)
{
return Localizer.Loc(_errorMessage);
}
}
}
Und
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespace Ic.DataAnnotations
{
public class RegularExpressionValidator : DataAnnotationsModelValidator<RegularExpressionAttribute>
{
private readonly string _message;
private readonly string _pattern;
public RegularExpressionValidator(ModelMetadata metadata, ControllerContext context, RegularExpressionAttribute attribute)
: base(metadata, context, attribute)
{
_pattern = attribute.Pattern;
_message = attribute.FormatErrorMessage("");
}
public override IEnumerable<ModelClientValidationRule> GetClientValidationRules()
{
var rule = new ModelClientValidationRule
{
ErrorMessage = _message,
ValidationType = "regex"
};
rule.ValidationParameters.Add("pattern", _pattern);
return new[] { rule };
}
}
}
Und in Global.asax
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(RegularExpressionLoc), typeof(RegularExpressionValidator));
Haben Sie es herausgefunden? – bob
Nein. Zur Zeit verwende ich benutzerdefinierte Attribute. – Harry