I want to show Components in a tabs , so first of all create few components. In this project we have three components, First View Component public class AllViewComponent : ViewComponent { private readonly UserManager<ApplicationUser> _userManager; public AllViewComponent(UserManager<ApplicationUser> userManager) { _userManager = userManager; } public async Task<IViewComponentResult> InvokeAsync() { List<StudentViewModel> allUsers = new List<StudentViewModel>(); var items = await _userManager.Users.ToListAsync(); foreach (var item in items) { allUsers.Add(new StudentViewModel {Id=item.Id, EnrollmentNo = item.EnrollmentNo, FatherName = item.FatherName, Name = item.Name, Age = item.Age, Birthdate = item.Birthdate, Address = item.Address, Gender = item.Gender, Email = item.Email }); }
Earlier article was about the default index action of the controller, which in other words used to list the records from the database created in MVC application. Except this list (Index) action, all other actions are of two types i.e. Get and Post, having particular motive in the programming.
According to name, Get method is used to get a particular model and return to the view that will show that model. The below code will return the blank model of Student class (Controller). User will enter particular information in the textboxes shown on the form and click on submit button.
// GET: /Student/Create
public ActionResult Create()
{
return View();
}
After clicking on the submit button, compiler goes to the post method of the same action i.e. Post Create action, as written below:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Student student)
{
if (ModelState.IsValid)
{
db.Students.Add(student);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(student);
}
The first two line of this code are attributes used to tell the compiler about this method i.e. this is post method and validates fields on submit method. The parameter is of type student means the view is of Student type (having all the fields of Student class) as shown some lines of the create view:
@model MvcApplication1.Models.Student
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
……………….
……………….
……………….
This view is strongly typed view because of the first line and have all the fields of student class (only name is shown here, remaining are something like this).
So, turn back on our previous discussion that was about the post Create action. This action will then check the model is valid or not (Validation). If valid then it will add this new student in the student table and then save the changes to the database. If not it will return to the same page with the errors generated.
The last line will return to the same action i.e. Create with the model passed as parameter and of course validation errors, you can check this to not enter some fields in the form and submit the data. The next will be to edit the student.
According to name, Get method is used to get a particular model and return to the view that will show that model. The below code will return the blank model of Student class (Controller). User will enter particular information in the textboxes shown on the form and click on submit button.
// GET: /Student/Create
public ActionResult Create()
{
return View();
}
After clicking on the submit button, compiler goes to the post method of the same action i.e. Post Create action, as written below:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Student student)
{
if (ModelState.IsValid)
{
db.Students.Add(student);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(student);
}
The first two line of this code are attributes used to tell the compiler about this method i.e. this is post method and validates fields on submit method. The parameter is of type student means the view is of Student type (having all the fields of Student class) as shown some lines of the create view:
@model MvcApplication1.Models.Student
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
……………….
……………….
……………….
This view is strongly typed view because of the first line and have all the fields of student class (only name is shown here, remaining are something like this).
So, turn back on our previous discussion that was about the post Create action. This action will then check the model is valid or not (Validation). If valid then it will add this new student in the student table and then save the changes to the database. If not it will return to the same page with the errors generated.
The last line will return to the same action i.e. Create with the model passed as parameter and of course validation errors, you can check this to not enter some fields in the form and submit the data. The next will be to edit the student.
Comments
Post a Comment