我正在使用 ASP.NET、MVC3、Razor。在我的网站中,我在所有页面(在顶部标题中)都有登录表单,用户可以随时登录。当带有另一个表单的另一个页面出现时,就会出现问题。我无法弄清楚如何实现它。我已经尝试了很多,但我认为我需要一个非常小的例子来解决我的问题。该示例可以像在同一页面上的注册表单和登录表单一样简单,它们分别工作、所有验证和其他内容。登录表单和注册表单可以是部分视图,也可以是任何人可以建议的可重复使用的内容。
这是_Register.cshtml(共享视图)的代码
@model MVCRnD.Models.RegisterModel
@using (Html.BeginForm("Register","Account")) {
}
放置上述共享视图的 about.cshtml 的代码
@Html.Partial("_Register")
帐户控制器代码
[HttpPost]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("", ErrorCodeToString(createStatus));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
部分视图,即注册表单呈现良好。但是当我点击提交按钮时,它会发布整个表单,但会将我带到实际上是正确的寄存器 /Account/Register。但我想在同一页上,不去其他形式。你要我发送完整的代码吗?我可以把它上传到某个地方,然后把链接发给你。