我是编程新手,特别是C#/ Asp.Net MVC的新手,我已经尝试了一段时间才能使这个工作起来,而且我的想法已经用完了。我试图在网上找到答案,但还没有提出解决方案(即使在阅读并尝试我发现类似问题的方法之后)。这个论坛对发布新内容有点吓人,但我现在卡住了。所以我想我会试一试。
我正在制作这个项目,我正在使用bootstrap,asp.net和C#来创建一个类似电子商务网站的网页。目前我正在使用登录系统。我正在使用SimpleMembership并尝试创建一个登录表单,该登录表单不需要仅用于登录的新页面,它实际上是在共享视图上。
以下是使用登录部分的表单的视图:
@model FakeStore.ViewModels.MenuSuperiorModel
<form class="navbar-form navbar-right">
@if (!WebSecurity.IsAuthenticated)
{
using (Html.BeginForm("Autentica", "Login", FormMethod.Post))
{
<div class="form-group">
@Html.TextBoxFor(m => m.login, new { @class="form-control", placeholder="Login" })
</div>
<div class="form-group">
@Html.TextBoxFor(m => m.senha, new { @class ="form-control", placeholder="Senha"})
</div>
@Html.HiddenFor(m => m.CarrinhoCount)
<input type="submit" value="Sign in" class="btn btn-success" />
<a class="btn btn-success" href="~/Usuario/Form">Register</a>
}
}
else if (WebSecurity.IsAuthenticated)
{
<span class="label label-primary">Welcome, @(WebSecurity.CurrentUserName)!</span>
}
</form>
该视图是布局页面上另一个局部视图的子视图。
这是调用登录表单视图的部分视图:
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
@Html.Partial("_CarrinhoCompraTopMenu")
<div id="navbar" class="navbar-collapse collapse">
<!-- vamos ver se dá problema esse _LoginMenu -->
@Html.Partial("_LoginMenu")
</div><!--/.navbar-collapse -->
</div>
</nav>
这是带有Action的BeginForm方法应该调用的控制器:
public class LoginController : Controller
{
// GET: Login
private UsuarioDAO udao;
public LoginController(UsuarioDAO udao)
{
this.udao = udao;
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("StoneECommerce", "Usuario", "Id", "Login", true);
}
}
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Autentica(MenuSuperiorModel menuSuperiorModel)
{
if (WebSecurity.Login(menuSuperiorModel.login, menuSuperiorModel.senha))
{
return RedirectToAction("Form", "Produto");
}
else
ModelState.AddModelError("login.Invalido", "Login ou senha incorretos");
return View("Index");
}
public ActionResult LoginMenu()
{
return PartialView("_LoginMenu");
}
我正在尝试获取提交按钮以将MenuSuperiorModel发送到LoginController的操作Autentica,以便它可以对用户进行身份验证。但问题是,它甚至没有采取行动。我尝试在其上设置断点,但未调用该操作。我错过了什么吗?我非常感谢你的帮助。
ps:我也没有配置自定义路由。
答案 0 :(得分:1)
您有嵌套的表单,这些表单是无效的HTML并且不受支持。删除外部<form class="navbar-form navbar-right">
元素。