在MVC视图中,您可以根据需要拥有任意数量的表单,其中包含多个字段。为简单起见,请使用单个视图模型以及页面上每种表单所需的所有属性。请记住,您将只能访问您提交的表单中的表单字段数据。因此,如果您在同一页面上有登录表单和注册表单,则可以这样进行:
LoginRegisterViewModel.cs
public class LoginRegisterViewModel { public string LoginUsername { get; set; } public string LoginPassword { get; set; } public string RegisterUsername { get; set; } public string RegisterPassword { get; set; } public string RegisterFirstName { get; set; } public string RegisterLastName { get; set; }}YourViewName.cshtml
@model LoginRegisterViewModel@using (Html.BeginForm("Login", "Member", FormMethod.Post, new {})) { @Html.LabelFor(m => m.LoginUsername) @Html.TextBoxFor(m => m.LoginUsername) @Html.LabelFor(m => m.LoginPassword) @Html.TextBoxFor(m => m.LoginPassword) <input type='Submit' value='Login' />}@using (Html.BeginForm("Register", "Member", FormMethod.Post, new {})) { @Html.LabelFor(m => m.RegisterFirstName) @Html.TextBoxFor(m => m.RegisterFirstName) @Html.LabelFor(m => m.RegisterLastName) @Html.TextBoxFor(m => m.RegisterLastName) @Html.LabelFor(m => m.RegisterUsername) @Html.TextBoxFor(m => m.RegisterUsername) @Html.LabelFor(m => m.RegisterPassword) @Html.TextBoxFor(m => m.RegisterPassword) <input type='Submit' value='Register' />}
MemberController.cs
[HttpGet]public ActionResult LoginRegister() { LoginRegisterViewModel model = new LoginRegisterViewModel(); return view("LoginRegister", model);}[HttpPost]public ActionResult Login(LoginRegisterViewModel model) { //do your login pre here}[HttpPost]public ActionResult Register(LoginRegisterViewModel model) { //do your registration pre here}别忘了,在调用BeginForm时,您传递的控制器名称不带“ Controller”:
@using (Html.BeginForm("Login", "Member", FormMethod.Post, new {}))代替:
@using (Html.BeginForm("Login", "MemberController", FormMethod.Post, new {}))


