Частичный контроль входа в MVC - PullRequest
0 голосов
/ 31 августа 2010

Все, что я пытаюсь сделать, - это создать элемент управления для входа, который я хочу разместить на своей домашней странице.

Ive создал элемент управления User Login следующим образом:

<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl(Of MyWebsite.LogOnModel)" %>
<% Using Html.BeginForm() %>
    <%: Html.ValidationSummary(True, "Login was unsuccessful. Please correct the errors and try again.")%>
    <div>

            <div class="editor-label">
                <%: Html.LabelFor(Function(m) m.UserName) %>
            </div>
            <div class="editor-field">
                <%: Html.TextBoxFor(Function(m) m.UserName) %>
                <%: Html.ValidationMessageFor(Function(m) m.UserName) %>
            </div>

            <div class="editor-label">
                <%: Html.LabelFor(Function(m) m.Password) %>
            </div>
            <div class="editor-field">
                <%: Html.PasswordFor(Function(m) m.Password) %>
                <%: Html.ValidationMessageFor(Function(m) m.Password) %>
            </div>

            <div class="editor-label">
                <%: Html.CheckBoxFor(Function(m) m.RememberMe) %>
                <%: Html.LabelFor(Function(m) m.RememberMe) %>
            </div>
            <p>
                <input type="submit" value="Log On"  />
            </p>

    </div>
<% End Using %>

Я сделал это на домашней странице index.aspx:

Html.RenderPartial("UsrCtlLogin")

Правильно отображается на домашней странице. Но мой вопрос, как мне подключить его к логике AccountController. т. е. по щелчку входа в систему я хочу, чтобы он запустил http-метод LogOn и проверил пользователя (отобразил недопустимое сообщение, если были предоставлены неверные данные), а затем перенаправил их на страницу, если они успешны.

Как создать связь между пользовательским элементом управления и AccountController?

Заранее спасибо

1 Ответ

3 голосов
/ 31 августа 2010

По умолчанию форма будет публиковаться в текущем URI.Так что, если это ваша домашняя страница, вы можете создать метод в вашем домашнем контроллере:

[HttpPost]
public ActionResult Index() {
     //authenticate
     return View();
}

Но вы не хотите смешивать обязанности контроллера.Поэтому измените действие формы для публикации в / users / login или любым другим способом публикации в вашем AccountController.

using (Html.BeginForm("Login", "Account", FormMethod.Post))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...