ASP NET MVC 3: форма не отправляется из-за обязательного скрытого поля

Я хочу отправить форму, но кнопка не активна. После некоторых поисков я обнаружил, что это связано с проверкой jquery, которую ASP.NET MVC имеет для обязательных полей. По какой-то странной причине ASP NET считает, что мое скрытое поле "UserId" обязательно. Что на самом деле не правда. Смотрите часть моей модели здесь:

   public class ResetPasswordModel
   {

        [.....]

     public Guid UserId
     {
       get;
       set;
     }

   }

И источник страницы показывает это:

<input data-val="true" data-val-required="The UserId field is required." id="UserId" name="UserId" type="hidden" value="" />

Есть идеи?!?

5 ответов

Тот факт, что это не обнуляемый тип, означает, что это требуется. Изменить определение на Guid? (включите знак вопроса, чтобы сделать его обнуляемым) Или, что еще лучше, создайте модель представления, у которой ее нет.

Я считаю, что Guid требуется по умолчанию, потому что он не обнуляем. Направляющие обычно являются первичными ключами, поэтому проблематично сделать их обнуляемыми. Попробуйте преобразовать Guid ToString(), чтобы вы могли использовать его в своем представлении, а затем вернуться к Guid, прежде чем использовать его в своем контроллере или модели. Возможно, вам придется создать ViewModel для того, чтобы сделать это.

Вероятно, есть Key атрибут поверх свойства UserId, что означает, что это обязательно

Вы уверены, что нет отдельного частичного класса, содержащего MetaData которая пометила поле как обязательное?

Что-то вроде этого:

class UserResetPasswordModelMetaData
{
    [Required(ErrorMessage = "The UserId field is required.")]
    public Guid UserId { get; set; }
}

Ищите свой проект для string "The UserId field is required", Могу поспорить, это где-то там.

Кроме того, как вы определяете пользователя, который пытается сбросить свой пароль, если не по его идентификатору?

Настроить валидатор jQuery, чтобы игнорировать скрытые поля. Вот так:

jQuery Validate Игнорировать элементы со стилем

Другие вопросы по тегам