Как сделать условные обязательные проверки полей в ASP.net MVC2 - PullRequest
1 голос
/ 18 февраля 2011

У меня 2, один - обновить данные пользователя, другой - изменить панель пароля.У обоих есть отдельная кнопка «обновить».Я не хочу, чтобы часть пользовательских данных была проверена, когда я нажимаю кнопку обновления пароля и наоборот применяется то же самое.В настоящее время я использую следующий код в представлении.

    [Required]
    [DataType(DataType.Password)]
    [DisplayNameLocalized(typeof(CapnorResource), "RepeatNewPassword")]
    public string RepeatNewPassword { get; set; } 

в интерфейсе, следующий код:

        <div class="passwordtd">
            <%: Html.LabelFor(view => view.RepeatNewPassword)%>
            <%: Html.PasswordFor(view => view.RepeatNewPassword)%>
            <%: Html.ValidationMessageFor(view => view.RepeatNewPassword)%>
        </div>

Ответы [ 2 ]

0 голосов
/ 15 марта 2011

У меня был такой же сценарий с небольшим поворотом.У меня была одна страница учетной записи, и пароль для изменения отображается как частичный на главной странице, пароль для изменения имеет собственную кнопку обновления, а частичный отображается в теге div id = "secure", который скрыт в $ (document).готовы().На главной странице сведений об учетной записи есть ссылка, на которой показан элемент div.

. Я получил частичную проверку следующим образом.
1) Создан временный тег div вне тега формы.
2) На $ (документ) .ready () Я добавляю частичный пароль для изменения во временный блок, чтобы при запуске проверки основных данных учетной записи не выполнялась проверка правильности пароля.
3) при нажатии на ссылку, чтобы отобразить частичный пароль для изменения, Iснова добавить частичку смены пароля в форму, а затем на кнопку Обновить частичку смены пароля я вручную вызываю методы проверки

var validator = $ ("form"). validate ();var oldpass = document.getElementById ("OldPasswordfeild");var newpass = document.getElementById ("NewPasswordfeild");var conpass = document.getElementById ("ConfirmPasswordfeild");

        if (!validator.element(oldpass) || !validator.element(newpass) || !validator.element(conpass)) 
        {
            isvalid = false;

        }

, поэтому запускаются только проверки паролей с изменением пароля, и если они действительны, я отправляю сообщение ajax своему контроллеру и, если он успешен, скрывает divи снова добавьте его во временную часть формы.

Вышеуказанная вещь работает как шарм.

0 голосов
/ 19 февраля 2011

Я не совсем уверен из формулировки вопроса, но с двумя разными кнопками, это звучит как две разные формы с двумя разными моделями представления. ViewModels может составлять одну большую ViewModel, или вы можете использовать RenderPartial для их полного разделения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...