在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.Text@R_854_2419@For(m => m.LoginUsername)
@Html.LabelFor(m => m.LoginPassword)
@Html.Text@R_854_2419@For(m => m.LoginPassword)
<input type='Submit' value='Login' />
}
@using (Html.BeginForm("Register", "Member", FormMethod.Post, new {})) {
@Html.LabelFor(m => m.RegisterFirstName)
@Html.Text@R_854_2419@For(m => m.RegisterFirstName)
@Html.LabelFor(m => m.RegisterLastName)
@Html.Text@R_854_2419@For(m => m.RegisterLastName)
@Html.LabelFor(m => m.RegisterUsername)
@Html.Text@R_854_2419@For(m => m.RegisterUsername)
@Html.LabelFor(m => m.RegisterPassword)
@Html.Text@R_854_2419@For(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 code here
}
[HttpPost]
public ActionResult Register(LoginRegisterviewmodel model) {
//do your registration code here
}
别忘了,在调用BeginForm时,您传递的控制器名称不带“ Controller”:
@using (Html.BeginForm("Login", "Member", FormMethod.Post, new {}))
代替:
@using (Html.BeginForm("Login", "MemberController", FormMethod.Post, new {}))