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 }); }
In earlier article we have added an empty controller with an action named GetValues in Visual Studio 2013. That action is of type HttpGet and return a simple view having a textbox control only. In this article we will access that value in the same controller with of course an HttpPost type of action.
The first thing is to create an HttpPost type of action having the same name to access the value from the view. Write the following code in the Empty controller just below the previously written GetValues action that is of type HttpGet.
[HttpPost]
public ActionResult GetValues(string username)
{
ViewBag.insertedValue = username;
return View();
}
Check out the parameter name of this action, it have the same spelling our textbox have. I have just save that value in the ViewBag and return the same view. Now in the view page I have added a simple submit button the section to display the value of this ViewBag. Here is the code of view page:
@using (Html.BeginForm())
{
<div>
<div>Name: </div>
<div>
@Html.TextBox("username")
</div>
<input type="submit" value="Send" />
<div>
Accessed value: @ViewBag.insertedValue
</div>
</div>
}
Remaining code is as same as in earlier article, the change is only the submit button and a section to display the value. Now run this MVC application and write http://localhost:portNo/Empty/GetValues in the address bar of the browser and press enter.
At the last of image Accessed value: is blank initially. Write anything in the textbox (here DotProgramming) and click on the Send button. It will go to the HttpPost action of this view i.e. written above with the value inserted and then save that value in ViewBag. Remember, we have return the view in post action so it will come back with the value inserted and write on the view page as shown.
The first thing is to create an HttpPost type of action having the same name to access the value from the view. Write the following code in the Empty controller just below the previously written GetValues action that is of type HttpGet.
[HttpPost]
public ActionResult GetValues(string username)
{
ViewBag.insertedValue = username;
return View();
}
Check out the parameter name of this action, it have the same spelling our textbox have. I have just save that value in the ViewBag and return the same view. Now in the view page I have added a simple submit button the section to display the value of this ViewBag. Here is the code of view page:
@using (Html.BeginForm())
{
<div>
<div>Name: </div>
<div>
@Html.TextBox("username")
</div>
<input type="submit" value="Send" />
<div>
Accessed value: @ViewBag.insertedValue
</div>
</div>
}
Remaining code is as same as in earlier article, the change is only the submit button and a section to display the value. Now run this MVC application and write http://localhost:portNo/Empty/GetValues in the address bar of the browser and press enter.
At the last of image Accessed value: is blank initially. Write anything in the textbox (here DotProgramming) and click on the Send button. It will go to the HttpPost action of this view i.e. written above with the value inserted and then save that value in ViewBag. Remember, we have return the view in post action so it will come back with the value inserted and write on the view page as shown.
Comments
Post a Comment