Я поиграл с сайтом MVC 1 по умолчанию, добавив некоторые поля в раздел регистрации, которые используются для создания вторичного объекта в базе данных во время регистрации.
Я создал модель представления, включая свойства username, email, password и passwordConfirm, а также некоторые другие. Затем я добавил тип к атрибуту наследования на странице регистра и в контроллере добавил новый экземпляр модели в свойство ViewData.Model.
Проблема в том, что когда я отправляю модель обратно на сервер, свойство passwordConfirm всегда равно null, независимо от того, что я ввожу. Свойство пароля заполнено правильно, как и все остальные свойства.
Есть ли что-то особенное, что нужно сделать, чтобы получить значение passwordConfirm для передачи?
Вот соответствующий код:
RegistrationViewModel.cs:
public class RegistrationViewModel
{
public string UserName { get; set; }
public string Password { get; set; }
public string PasswordConfirm { get; set; }
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string DisplayName { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public string HomePhone { get; set; }
public string CellPhone { get; set; }
public string OtherPhone { get; set; }
public string Twitter { get; set; }
public string Bio { get; set; }
public string DOB { get; set; }
}
AccountController.cs:
public ActionResult Register()
{
ViewData.Model = new RegistrationViewModel();
ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
return View();
}
Register.aspx:
<% using (Html.BeginForm()) { %>
<div>
<fieldset>
<legend>Account Information</legend>
<p>
<label for="firstname">First Name:</label>
<%= Html.TextBox("firstname", Model.FirstName) %>
<%= Html.ValidationMessage("firstname") %>
</p>
<p>
<label for="lastname">Last Name:</label>
<%= Html.TextBox("lastname", Model.LastName) %>
<%= Html.ValidationMessage("lastname") %>
</p>
<p>
<label for="username">Username:</label>
<%= Html.TextBox("username", Model.UserName) %>
<%= Html.ValidationMessage("username") %>
</p>
<p>
<label for="email">Email:</label>
<%= Html.TextBox("email", Model.Email) %>
<%= Html.ValidationMessage("email") %>
</p>
<p>
<label for="zipcode">Zip Code:</label>
<%= Html.TextBox("zip", Model.Zip) %>
<%= Html.ValidationMessage("zip") %>
</p>
<p>
<label for="password">Password:</label>
<%= Html.Password("password", Model.Password) %>
<%= Html.ValidationMessage("password") %>
</p>
<p>
<label for="confirmPassword">Confirm password:</label>
<%= Html.Password("confirmPassword",Model.PasswordConfirm) %>
<%= Html.ValidationMessage("confirmPassword") %>
</p>
<p>
<input type="submit" value="Register" />
</p>
</fieldset>
</div>
<% } %>