Ошибка Sys не определена при добавлении пользовательской проверки (проверка MVC Foolproof)

Я пытаюсь добавить собственный валидатор, используя библиотеку MVC Foolproof.

Однако, следуя инструкциям здесь, я получаю сообщение об ошибке "Система не определена".

Я подозреваю, что это связано с тем, что библиотека изначально была написана для работы со старыми файлами сценариев проверки, которые поставлялись с MVC 2 (и, возможно, 3), поэтому есть ли способ зарегистрировать мою функцию проверки для файлов проверки javascript, которые поставляются с MVC 4?

Свойство моей модели определяется как

[RatingTextRequired(ErrorMessageResourceType = typeof(ModelResources.Customer.Order.FeedbackRating), ErrorMessageResourceName = "RequiredError_Comment")]
public string FeedbackText { get; set; }

Атрибут проверки определяется как

public class RatingTextRequiredAttribute : ModelAwareValidationAttribute
{
    //this is needed to register this attribute with foolproof's validator adapter
    static RatingTextRequiredAttribute()
    {
        Register.Attribute(typeof (RatingTextRequiredAttribute));
    }

    public override bool IsValid(object value, object container)
    {
        var model = (Areas.Customer.Models.FeedbackRating) container;

        return !(String.IsNullOrWhiteSpace(value.ToString()) && (model.WantsPostEditing || model.Rating == "0"));
    }
}

И подключение JavaScript для этого

Sys.Mvc.ValidatorRegistry.validators["ratingtextrequired"] = function (rule) {

    return function(value, context) {

        var wantsPostEditingProp = foolproof.getId(context.fieldContext.elements[0], "WantsPostEditing");
        var wantsPostEditingVal = document.getElementById(wantsPostEditingProp).value;

        var ratingProp = foolproof.getId(context.fieldContext.elements[0], "Rating");
        var ratingVal = document.getElementById(ratingProp).value;

        return !(value.length == 0 && (wantsPostEditingVal || ratingVal === "0"));
    };
};

Кроме того, я не уверен, для чего требуется файл MvcFoolproofJQueryValidation.js, потому что каким-то образом у меня была стандартная проверка, работающая без этого файла сценария. К сожалению, включение этого не помогает с моей ошибкой "Sys не определена".


person awj    schedule 03.02.2014    source источник
comment
Я использую защиту от дурака в mvc 4 без проблем. Можете ли вы добавить код, который выдает ошибку? и ваша модель, как вы определяете требуемый   -  person Matt Bodily    schedule 03.02.2014
comment
Я обновил вопрос со всем соответствующим кодом/javascript.   -  person awj    schedule 03.02.2014
comment
возможный дубликат этого вопроса stackoverflow.com/questions/23541452   -  person Hakan Fıstık    schedule 21.01.2016


Ответы (1)


Основываясь на своей ошибке, вы используете обструктивный подход jquery.

См. этот сообщение для получения дополнительной информации.

person joaoasrosa    schedule 16.02.2014