Reputation: 107
I'm using two models, Login & Signup Model in a View.
public class Login
{
[Required(ErrorMessage ="User ID Required.")]
public string UserID { get; set; }
[Required(ErrorMessage ="Password Required")]
public string Password { get; set; }
}
public class SignUp
{
[Required (ErrorMessage ="User ID Required")]
public string UserID { get; set; }
[Required (ErrorMessage ="Name Required")]
public string Name { get; set; }
[Required (ErrorMessage ="Mail ID Required")]
public string MailID { get; set; }
[Required(ErrorMessage ="Password Required")]
public string Password { get; set; }
[Required(ErrorMessage ="Confirm Password Required")]
[Compare (nameof(Password), ErrorMessage ="Password does not match")]
public string ConfirmPassword { get; set; }
}
when I click Login button, it validates both the models. How to validate the model separately?
Used following codes in controller
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string Command, Login Login)
{
if (Command == "SIGNUP")
{
return RedirectToAction("Contact");
}
else
{
if (ModelState.IsValidField("USERID") && ModelState.IsValidField("PASSWORD"))
{
return RedirectToAction("About");
}
}
return View();
}
Index.cshtml VIEW CODE:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="HolderForm">
<div class="col-md-6">
<div class="form-horizontal">
<h4>Login</h4>
<hr />
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.Login.UserID, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "USER ID" } })<br>
@Html.ValidationMessageFor(o => o.Login.UserID,"", new {@class= "LoginValidation" } )
</div>
</div>
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.Login.Password, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "PASSWORD" } })<br>
@Html.ValidationMessageFor(o => o.Login.Password,"", new { @class = "LoginValidation" })
@ViewBag.Posted
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
@ViewBag.Posted
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit"
value="LOGIN"
id="btn_Login"
name="Command"
class="btn btn-default" />
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-horizontal">
<h4>SignUp</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.SignUp.UserID, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "USER ID" } })<br>
@Html.ValidationMessageFor(o => o.SignUp.UserID,"", new { @class = "LoginValidation" } )
</div>
</div>
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.SignUp.Name, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "NAME" } })<br>
@Html.ValidationMessageFor(o => o.SignUp.Name, "", new { @class = "LoginValidation" })
</div>
</div>
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.SignUp.MailID, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "MAIL ID" } })<br>
@Html.ValidationMessageFor(o => o.SignUp.MailID, "", new { @class = "LoginValidation" })
</div>
</div>
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.SignUp.Password, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "PASSWORD", @type = "password" } })<br>
@Html.ValidationMessageFor(o => o.SignUp.Password, "", new { @class = "LoginValidation" })
</div>
</div>
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.SignUp.ConfirmPassword, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "CONFIRM PASSWORD", @type = "password" } })<br>
@Html.ValidationMessageFor(o => o.SignUp.ConfirmPassword, "", new { @class = "LoginValidation" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type= "submit" value="SIGNUP"
id="btn_Login"
name="Command"
class="btn btn-default" />
</div>
</div>
</div>
</div>
</div>
}
Above code place on the view using two different model.
Please help and also suggest me where to learn ASP.NET (Beginner level)?
Upvotes: 0
Views: 69
Reputation: 440
you add Login
and SignUp
in one Form
@using (Html.BeginForm()){
...
}
try this
<div class="HolderForm">
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="col-md-6">
<div class="form-horizontal">
<h4>Login</h4>
<hr />
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.Login.UserID, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "USER ID" } })<br>
@Html.ValidationMessageFor(o => o.Login.UserID,"", new {@class= "LoginValidation" } )
</div>
</div>
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.Login.Password, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "PASSWORD" } })<br>
@Html.ValidationMessageFor(o => o.Login.Password,"", new { @class = "LoginValidation" })
@ViewBag.Posted
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
@ViewBag.Posted
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit"
value="LOGIN"
id="btn_Login"
name="Command"
class="btn btn-default" />
</div>
</div>
</div>
</div>
}
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="col-md-6">
<div class="form-horizontal">
<h4>SignUp</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.SignUp.UserID, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "USER ID" } })<br>
@Html.ValidationMessageFor(o => o.SignUp.UserID,"", new { @class = "LoginValidation" } )
</div>
</div>
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.SignUp.Name, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "NAME" } })<br>
@Html.ValidationMessageFor(o => o.SignUp.Name, "", new { @class = "LoginValidation" })
</div>
</div>
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.SignUp.MailID, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "MAIL ID" } })<br>
@Html.ValidationMessageFor(o => o.SignUp.MailID, "", new { @class = "LoginValidation" })
</div>
</div>
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.SignUp.Password, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "PASSWORD", @type = "password" } })<br>
@Html.ValidationMessageFor(o => o.SignUp.Password, "", new { @class = "LoginValidation" })
</div>
</div>
<div class="form-group">
<div class="col-md-10">
@Html.EditorFor(o => o.SignUp.ConfirmPassword, new { htmlAttributes = new { @class = "LoginEntry", @placeholder = "CONFIRM PASSWORD", @type = "password" } })<br>
@Html.ValidationMessageFor(o => o.SignUp.ConfirmPassword, "", new { @class = "LoginValidation" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type= "submit" value="SIGNUP"
id="btn_Login"
name="Command"
class="btn btn-default" />
</div>
</div>
</div>
</div>
</div>
}
Upvotes: 3