Скажем, я ввел 'email@domain.com' и 'пароль' в поля для входа.
Аннотации данных в AuthModel.cs возвращают, что значения не заполняются.Таким образом, данные в html-форме фактически никогда не заполняют модель, которую они выбрасывают.
В своем удивлении я вчера внес много поспешных изменений перед закрытием решения и не тестировал сделанные мной изменения,В результате я не знаю, что я изменил, чтобы сломать это.
Если мне нужно опубликовать что-нибудь еще, дайте мне знать.* AuthModel.cs
public class AuthModel
{
public Login Login { get; set; }
public ForgotPassword ForgotPassword { get; set; }
public Register Register { get; set; }
}
...
public class Login
{
[Required
(ErrorMessageResourceName = "Login_Error_HandleRequired",
ErrorMessageResourceType = typeof(Resources.Auth))]
[Email(ErrorMessage="Invalid Email")]
public string Handle { get; set; }
[Required
(ErrorMessageResourceName = "Login_Error_PasswordRequired",
ErrorMessageResourceType = typeof(Resources.Auth))]
public string Password { get; set; }
public bool Memory { get; set; }
}
И Index.aspx, который является формой входа в систему.
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Templates/FullColumn.Master" Inherits="System.Web.Mvc.ViewPage<FCX.Models.Auth.AuthModel>" %>
...
<% Html.EnableClientValidation(); %>
<%=Html.ValidationSummary() %>
<% using (Html.BeginForm("login", "auth"))
{ %>
<div id="login-block" class="entry-block">
<h4>
Sign in</h4>
<ul>
<li>
<label for="Login_Handle">
Email Address</label><%=Html.TextBoxFor(Model => Model.Login.Handle, new { @class = "txt-input" })%></li>
<li>
<label for="Login_Password">
Password</label><%=Html.PasswordFor(Model => Model.Login.Password, new { @class = "txt-input" })%></li>
<li>
<%=Html.CheckBoxFor(Model => Model.Login.Memory, new { @class = "left-input" })%><label
for="Login_Memory" class="right-label">Keep me logged in</label></li>
<li>
<button type="submit" name="Login.Submit" value="1">
Sign in</button></li>
</ul>
</div>
<% } %>