Проверка происходит до загрузки представления - PullRequest
0 голосов
/ 21 декабря 2011

Хорошо, вот сделка. У меня есть простой экран входа в систему (в отдельной области), и когда я выбираю Вход в меню в меню, экран входа в систему загружается отлично, но он показывает ошибки, как простая загрузка представления выполняет проверку (ненавязчивый jQuery).

Вот ссылка на страницу входа:

<li> <%: Html.ActionLink("Log In", "Index", "Login", new { area = "AdminArea" }, null)%></li>

Это логин. Просмотр:

<%= Html.RenderScript("MicrosoftMvcJQueryValidation")%>
<%= Html.RenderScript("json2")%>
<%= Html.RenderScript("loginForm")%>
<%  Html.EnableClientValidation(); %>

<% using (Html.BeginForm("Index", "Login", FormMethod.Post, new { @id = "signin" }))
{
    ViewContext.FormContext.ValidationSummaryId = "valLoginContainer"; %>
<fieldset>
<div class="row">
    <span class="label">
        <label for="Password">&nbsp;</label>
    </span>
    <table style="width" border="none;">
        <tr>
            <td>
                <%= Html.JQueryValidationSummary("Please fix the following error(s):", new Dictionary<string, object> { { "id", "valLoginContainer" } })%>
            </td>
        </tr>
    </table>
</div>
<legend>Admin Login</legend>
<div class="row">
    <span class="label">
        <label for="Username">Username:</label>
    </span>
    <%= Html.TextBoxFor(m=> m.Username, new { @class = "inputbox" })%><%= Html.ValidationMessageFor(m => m.Username, " *")%>
</div>
<div class="row">
    <span class="label">
        <label for="Password">Password:</label>
    </span>
    <%= Html.TextBoxFor(m=> m.Password, new { @class = "inputbox" })%><%= Html.ValidationMessageFor(m => m.Password, " *")%>
</div>
<div class="row">
    <span class="label">
        <label for="Password">&nbsp;</label>
    </span><a href="#" id="forgot_password_link" title="Click here to reset your password."> Forgot password?</a>
</div>
<div class="row">
    <span class="label">
        <label for="Password">&nbsp;</label>
    </span>
    <a href="#" id="forgot_username_link" title="Fogot your login name? We can help with that"> Forgot username?</a>
</div>
    <div class="row">
    <span class="label">
        <label for="Password">&nbsp;</label>
    </span>
    <input type="submit" id="action" value="Submit &raquo;" class="formButtons" />
</div>
</fieldset>
<%}%>

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

1 Ответ

0 голосов
/ 22 декабря 2011

Эта проблема была решена. Мне не хватало файла JS (о котором я не знал), и как только я добавил файл, все работает прекрасно. Кроме того, в LoginController.cs у меня была эта строка, которая была неправильной

public virtual ActionResult Index()
{
    return View();
}

Как только я изменил это, все было хорошо '

public virtual ActionResult Index()
{
    return View(new LoginViewModel());
}

LoginViewModel выглядит так:

public class LoginViewModel
{
    [Required(ErrorMessage = "Username/email is required")]
    public string Username { get; set; }

    [Required(ErrorMessage = "Password is required")]
    public string Password { get; set; }

    public bool RememberMe { get; set; }
}

Спасибо всем, кто на это посмотрел.

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