MVC C#登录主页

本文关键字:主页 登录 MVC | 更新日期: 2023-09-27 17:50:02

嘿,我是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);
    }

当我测试它时,它不会进入accountmodel LogOn方法。

谁能帮我?

MVC C#登录主页

根据您所说的,我唯一能想到的是阻止该表单进入LogOn Controller Action的是主页面不知道LogOnModel,然后无法将其正确传递给控制器。

在你的主页顶部,你会有一行像这样的

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

如果你将上面的表单直接嵌入到你的MasterPage中,那么它需要注意LogOnModel,所以要做到这一点,请将最上面的行看起来像这样。。。

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

当然,将"YourProjectName"替换为您的项目名称。。。然后,除非我们在您的设置中没有看到其他内容,否则当您提交登录时,应该会命中LogOn功能。