Я много о xval не знаю, но, возможно, вы можете посмотреть в наследовании от xval атрибутов и делает чек там ...
например ConditionalRequiredAttribute: RequiredAttribute, который, возможно, может принимать соответствующие статусы для проверки.
проверка будет так же просто, как base.Validate() (или как там это называется) по методу валидации ConditionalRequiredAttribute, если условие проверки выполняется (состояние! = «Проект).
Поскольку я не знаю xval , Я не уверен, как работает проверка на стороне клиента ... создает ли код проверки на стороне клиента? В этом случае вам придется написать код, который создает похожую оболочку в javascript (например, if (status! = "Draft ») ... Если проверка просто вызывает вызов Ajax на сервер, который возвращает список ошибок, то я полагаю, что вам больше не придется ничего делать.
Извините, я не мог ответить на ваш вопрос напрямую, но, возможно, это может помочь вам придумайте некоторые идеи ...
Моя основная проблема заключается в том, что я использую xval для проверки на стороне клиента ... не знаю, как я могу переопределить эту проверку. Думаю, это вопрос для автора. Кроме того, нужно просто оценить, нужно ли нам предоставлять пользователю эту возможность (для сохранения) из-за наличия нескольких полей, которые мы не хотим даже сохранять без проверки некоторых данных. Мы должны принять здесь некоторые решения ... спасибо! – waynem
@waynem Похоже, вы не хотите переопределять проверку xVal. Вы хотите либо отключить его для этой страницы, чтобы данные могли быть отправлены или обходить его с помощью jquery Ajax post. –