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方法。
谁能帮我?
根据您所说的,我唯一能想到的是阻止该表单进入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功能。