0

我花了几个小时试图解决这个问题,但无济于事。

我正在使用 Orchard 1.6 源和 DataAnnotations。我strings的装饰和[Required]我的一样enum。然而,客户端验证仅适用于我页面 ( strings) 上的文本框,enum(单选按钮列表)不会触发验证(也不会像class="input-validation-error"html 源代码那样显示)。

这是我的enum

public enum Referral
    {
        [Display(Name = "Google / Google+")]
        Google,
        [Display(Name = "Bing / Yahoo / Other Search Engine")]
        OtherSearch,
        [Display(Name = "LinkedIn")]
        LinkedIn,
    }
    public class ReferralSelectorAttribute : SelectorAttribute
    {
        public override IEnumerable<SelectListItem> GetItems()
        {
            return Selector.GetItemsFromEnum<Referral>();
        }
    }
    [Required(ErrorMessage = "Please select one referral option")]
    [Display(Name = "How did you hear about us?", 
        Description = "Letting us know how you reached us helps us 
        to focus our advertising efforts and ultimately lowers costs")]
    [ReferralSelector(BulkSelectionThreshold = 8)]
    public virtual Referral? ReferralRadioButton { get; set; }

我不知道为什么这没有触发。有什么想法吗?

注意:我已经尝试了几乎所有我能找到的关于这个主题的东西。我已经使用特殊的 ResourceManifest.cs 文件注册了适当的 jquery 脚本(验证、不显眼等)。我已将其纳入我的观点。我在一个特殊的 Shell.cs 文件(IOrchardShellEvents 或其他东西)中重新添加了模型验证。

4

1 回答 1

0

解决了!我将枚举和选择器拆分为它们自己的类,引用它们,然后不使用 web.config 来启用客户端验证,而是将 html.helper 放在视图中。

于 2012-11-26T23:27:55.463 回答