Пожалуйста, помогите по проблеме, указанной выше.
Вот мой взгляд
<div class="editor-label">
@Html.LabelFor(model => model.person.UserName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.person.UserName)
@Html.ValidationMessageFor(model => model.person.UserName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.person.Password)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.person.Password)
@Html.ValidationMessageFor(model => model.person.Password)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.person.ConfirmPassword)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.person.ConfirmPassword)
@Html.ValidationMessageFor(model => model.person.ConfirmPassword)
</div>
Вот моя модель
public abstract partial class Member
{
[DisplayName("ID")]
public string ID { get; set; }
[Required]
[DisplayName("Username")]
public string UserName { get; set; }
[DisplayName("Date Applied")]
public System.DateTime? DateApplied { get; set; }
[DisplayName("Date Membered")]
public System.DateTime? DateMembered { get; set; }
[DisplayName("Member Type")]
public int MemberTypeFlag { get; set; }
[Required]
[DisplayName("Email Address")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
public class Person : Member
{
[DisplayName("Last Name")]
public string LastName { get; set; }
[DisplayName("First Name")]
public string FirstName { get; set; }
[DisplayName("Date Of Birth")]
public System.DateTime DateOfBirth { get; set; }
}
И моя модель взгляда ..
public class PersonInformation
{
public Person person { get; set; }
public Address premiseAddress { get; set; }
public Address billingAddress { get; set; }
}
В этом случае .. мой подтверждающий пароль будет проверен на моем элементе имени пользователя в представлении ..
Любая помощь будет высоко оценена.
Спасибо
Поскольку мой первый элемент в представлении - это поле имени пользователя ... мое поле подтверждения пароля будет проверяться в этом поле, а не в поле пароля.
Мой код будет производить что-то вроде этого.
USERNAME : ADMIN
PASSWORD : PASSWORD
CONFIRM : PASSWORD **<< this will states that "The password and confirmation password do not match."
НО, если я введу что-то вроде этого
USERNAME : ADMIN
PASSWORD : PASSWORD
CONFIRM : ADMIN
Ошибка проверки исчезла, но она не должна так себя вести.
Вот сгенерированный код HTML ..
<div class="editor-label">
<label for="person_Password">Password</label>
</div>
<div class="editor-field">
<input class="text-box single-line password" data-val="true" data-val-length="The Password must be at least 6 characters long." data-val-length-max="100" data-val-length-min="6" data-val-required="The Password field is required." id="person_Password" name="person.Password" type="password" value="" />
<span class="field-validation-valid" data-valmsg-for="person.Password" data-valmsg-replace="true"></span>
</div>
<div class="editor-label">
<label for="person_ConfirmPassword">Confirm password</label>
</div>
<div class="editor-field">
<input class="text-box single-line password" data-val="true" data-val-equalto="The password and confirmation password do not match." data-val-equalto-other="*.Password" id="person_ConfirmPassword" name="person.ConfirmPassword" type="password" value="" />
<span class="field-validation-valid" data-valmsg-for="person.ConfirmPassword" data-valmsg-replace="true"></span>
</div>
Контроллер
public ActionResult PersonInformation()
{
var pi = new PersonInformation();
pi.MemberContacts = pi.LoadMemberContacts();
return View(pi);
}
[HttpPost]
public ActionResult PersonInformation(PersonInformation member)
{
if (ModelState.IsValid)
{
MembershipCreateStatus createStatus;
db.Apply(member, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
ModelState.Clear();
IEnumerable<MemberRequirement> mr = member.person.MemberRequirements;
return View("Requirements", mr);
}
else
{
ModelState.AddModelError("", ErrorCodeToString(createStatus));
}
}
return View(member);
}