MVC C # Войти Masterpage - PullRequest
       22

MVC C # Войти Masterpage

1 голос
/ 12 апреля 2011

Эй, я новичок в mvc .net.У меня есть мастер-страница, на которой есть логин.Теперь я хочу иметь возможность войти в систему с любой страницы.Но я не могу заставить его работать.У меня есть AccountController с методом входа и главной страницей.Это логин на главной странице

 <% using (Html.BeginForm("LogOn", "Account"))
              { %>
           <%: Html.ValidationSummary(true, "Login foutief. probeer opnieuw.") %>
           <div id="login_panel">

                     <fieldset>

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

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

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

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

                        <div class="editor-label">
                            <%: Html.CheckBoxFor(m => m.RememberMe) %>
                            <%: Html.LabelFor(m => m.RememberMe) %>
                        </div>

                        <p>
                        <input type="submit" value="Log On" />
                        </p>
                    </fieldset>

            </div>
            <% } %>

А это контроллер

 [HttpPost]
    public ActionResult LogOn(LogOnModel model, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            if (persoonRepos.aanmelden(model.UserName, model.Password))
            {
                FormsService.SignIn(model.UserName, model.RememberMe);
                if (!String.IsNullOrEmpty(returnUrl))
                {
                    return Redirect(returnUrl);
                }
                else
                {
                    return RedirectToAction("Index", "Home");
                }
            }
            else
            {
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }
        }
        return View(model);
    }

Когда я тестирую его, он не переходит в метод accountOdel LogOn.* Кто-то, кто может мне помочь?

1 Ответ

0 голосов
/ 14 апреля 2011

Исходя из того, что вы говорите, единственное, что я могу придумать, это удержать эту форму от попадания в действие контроллера LogOn, это то, что главная страница не знает о LogOnModel и не может должным образом передать егоконтроллер.

В самом верху вашей MasterPage у вас будет строка, подобная этой

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>

Если у вас есть форма выше, встроенная непосредственно в вашу MasterPage, то она должна знатьLogOnModel, поэтому, чтобы это произошло, верхняя строка должна выглядеть следующим образом ...

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<YourProjectName.Models.LogOnModel>" %>

Конечно, замените "YourProjectName" на имя вашего проекта ... Тогда, если мы не найдем что-то еще, мы "вы не видите в настройках, что функция LogOn должна быть активирована при отправке логина.

...