MVC VERSON OF A USER CONTROL USING RAZOR and Shared View
This post will take you througth creating a what was called a User Control in ASP.net to what you might use instead in a MVC application.
Lets start with a simple select box that you want to use on a few pages in your application.
<option value='1' Selected = 'selected' >Full Site 01</option>
<option value='1/1'>Satellite 001</option>
<option value='1/3'>Satellite 002</option>
<option value='2'>Full Site 02</option>
<option value='2/7'>Satellite 001</option>
</select>
This is a simple select box that will drop down and allow the user to select an item.
Step1
Create a view in the "View/Shared" folder of your application. I named this one _IndexSites.cshtmlIn order for your select list to be used you have to add additional code to post it back to your application. I also wanted to use the selection change in jquery to handle to change in that selection. here is the code.
"~/Views/Shared/_IndexSites.cshtml
Because I am passing the string of the select box I am using a string in this case. The JQuery is used to detect a change in the select list and call the controller action in the post to "Mycontroler/MyAction. There you can use the FormCollection to get the selected item.
Step2
You have to have a controller that will handle the selection of the select listMyControler/Myaction. This can be it's own or any controller. The controller will only affect the PartialView which is the control you are using.
[HttpPost]
public ActionResult Myaction(FormCollection collection)
{
//Do something with the selection of the DDL
return(PartialView("~/Views/Shared/_IndexSites.cshtml"); }
Step 3
Now in every controller that you want to place the control you have to load the control with the necessary info For example. So this action needs to be in that controller.One of my controllers is named "Home" so one of my actions is
public ActionResult InitSiteSelect()
{
Viewbag.Select = //select drop down string..
return(PartialView("~/Views/Shared/_IndexSites.cshtml");
}
Step 4
In the home viewer " Home/Index.cshtml" I can place my control anywhere I want by using the code below. This is the code that will go in the view that you want to use the controller in. The "InitSiteSelection" which is the name I gave to the action is called in that controller which fills the view's data.@{ Html.RenderAction("InitSiteSelect"); }
The "InitsiteSelect" will call my current controller action which will load my control.
To Sum It Up!
Create a view in the "View/Shared" folder of what you want to do. The view has to be in that folder so that it can be seen by any controller in the application. That view also needs to be a PartialView.There needs to be a controller for that view to process any info that view my have and the view "Post" to that controller.You need to have the @Html.RenderAction("Controller Action") in the controller that the view will show up in and to load the page.
That's It!!!!
Happyluke | Home | ThTopBet
ReplyDeleteWelcome to the Home of a Bouncer! We've got you covered. As a new player we'll happyluke be happy to welcome you back to fun88 soikeotot the 우리카지노 Home of a Bouncer!
No deposit bonuses | No deposit casino for 2020
ReplyDeleteNo Deposit Casino | 포천 출장마사지 Top 여주 출장안마 No Deposit Casino Offers 하남 출장마사지 2021 오산 출장샵 | No Deposit Bonus Codes | No Deposit Bonus Codes | Free $5 김제 출장안마 Free Chip | No