Я пытаюсь добавить флажок, который должен быть отмечен для прогресса, стандартную декларацию условий и положений.
Просматривая веб-страницы, все ответы на эту проблему являются разновидностью следующего кода:
[Display(Name = "This Is A Test")]
[MustBeTrue(ErrorMessage = "come on!")]
//[MustBeTrue(ErrorMessageResourceType = typeof(Res.Text), ErrorMessageResourceName = "ValidationMessage")]
//[Range(typeof(bool), "true", "true", ErrorMessage = "You gotta tick the box!")]
public bool TermsAndConditions { get; set; }
пользовательский атрибут выглядит так:
public class MustBeTrueAttribute : ValidationAttribute, IClientValidatable
{
public override bool IsValid(object value)
{
return value is bool && (bool)value;
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
yield return new ModelClientValidationRule
{
ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()),
ValidationType = "mustbetrue"
};
}
}
а затем что-то похожее на:
$.validator.unobtrusive.adapters.addBool("mustbetrue", "required");
На мой взгляд, я отображаю флажок так:
@Html.CheckBoxFor(m => m.TermsAndConditions, false)
@Html.LabelFor(m => m.TermsAndConditions)
@Html.ValidationMessageFor(m => m.TermsAndConditions)
Я пробовал множество вариантов этого, и я всегда получал одно и то же исключение:
System.InvalidOperationException
HResult=0x80131509
Message=The parameter conversion from type 'System.String' to type 'Nordics.Models.PolicyManagement.Affiliates.Affiliate' failed because no type converter can convert between these types.
Source=System.Web.Mvc
StackTrace:
at System.Web.Mvc.ValueProviderResult.ConvertSimpleType(CultureInfo culture, Object value, Type destinationType)
Я в полной растерянности, кто-то может указать мне правильное направление? Благодаря.