Models : Here SubjectDetailsModel contain sub-model StudentDetailsModel
public class SubjectDetailsModel
{
[Key]
public int Id { get; set; }
[Required]
public string SubjectName { get; set; }
[Required]
public string SubjectCode { get; set; }
public StudentDetails studentDetails { get; set; }
}
public class StudentDetailsModel
{
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string EnrollmentNumber { get; set; }
[Required]
public string Gender { get; set; }
[Required]
public string City { get; set; }
}
Controller
Let me know when I'm passing the SubjectDetailsModel as a Parameter in the post method of Index and this time I need to check only the StudentDetailsModel state is valid or not. So how can I do it?
public class HomeController : Controller
{
[HttpGet]
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(SubjectDetailsModel model)
{
//Here i need to check StudentDetails ModelState.Isvalide instead of SubjectDetails model. OR
//How can the check sub-model state is valid or not instead of checking the main model state?
if (ModelState.IsValid) // This condition checking SubjectDetailsModel State.
{
// Insert recorde
}
return View(model);
}
}
View
@model SubjectDetailsModel
<form method="post" asp-action="Index" asp-controller="Home">
<input asp-for="Id" hidden />
<input asp-for="SubjectName"/>
<input asp-for="SubjectCode" />
<input asp-for="studentDetails.Name"/>
<input asp-for="studentDetails.Gender" />
<input asp-for="studentDetails.City" />
<button type="submit">Submit</button>
</form>