0

在 MVC 视图中,我有 2 个表单,其中包含如下所示的字段

登录注册模型.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; }
}

LoginRegistte.cshtml(第一种形式)

@model LoginRegisterViewModel

@using (Html.BeginForm("Login", "MemeberController", 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", "MemeberController", 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' />

}

成员控制器.cs

[HttpGet]
public ActionResult LoginRegister() {
     LoginRegisterViewModel model = new LoginRegisterViewModel();
     return view("LoginRegister", model);
}

[HttpPost]
public ActionResult Login(LoginRegisterViewModel model) {
   if (ModelState.IsValid)
        {
 //some logic
  }
         else
          {

                   return view(model);
                      }
}

[HttpPost]
public ActionResult Register(LoginRegisterViewModel model) {
 if (ModelState.IsValid)
        {
 //some logic
   }
         else
          {

                   return view(model);
                      }
}

在这种情况下,当我直接单击第一个表单按钮时,我想要对第一个表单进行验证。但我一次得到两个表单验证。我在控制器或其他地方做什么?

4

2 回答 2

0

像这样试试

表格1

@model LoginRegisterViewModel

@using (Html.BeginForm("Login", "MemeberController", FormMethod.Post, new {id="frmLogin"})) {

    @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' id="btnLogin" />

}

表格2

@using (Html.BeginForm("Register", "MemeberController", FormMethod.Post, new {id="frmRegister"})) {

    @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' id= "btnRegister" />
}

脚本

 $(document).ready(function () {

 $('#btnLogin').click(function () {

           var validation = $("#frmLogin"); 
                       if (!validation.valid()) {
                         return false;
                        }

});

 $('#btnRegister').click(function () {

           var validationRegi = $("#frmRegister"); 
                       if (!validationRegi.valid()) {
                         return false;
                        }

});
});
于 2013-08-17T17:26:58.543 回答
0

这里看起来只是一个错字:

@using (Html.BeginForm("Login", "MemeberController", FormMethod.Post, new {})) 

MemeberController 应该是 MemberController。

它在 2 个位置,所以一定要抓住它们。

于 2014-07-10T03:10:32.533 回答