List of Radio buttons are placed on the view when programmer need to checked only one value among a group by the user. Asp.Net MVC provides some simple steps to complete this task with few lines of code.
First, create an action in the controller and write a single line which will return that on the view. This type of view is called HttpGet method which only used to get the values on the page, in this case we don’t want any value from this action so we are returning only null view.
public ActionResult RadioList()
{
return View();
}
Add a view having the same name as in above action which have four radio buttons of same name and values defined sequentially, as written in below code:
<h2>RadioList</h2>
@using (Html.BeginForm())
{
<div>
<ul>
<li>@Html.RadioButton("radioList", 1) RadioButton 1 </li>
<li>@Html.RadioButton("radioList", 2) RadioButton 2 </li>
<li>@Html.RadioButton("radioList", 3) RadioButton 3 </li>
<li>@Html.RadioButton("radioList", 4) RadioButton 4 </li>
</ul>
<input type="submit" value="Submit" id="submitBtn" />
</div>
}
All of these radio buttons have the same name “radioList” that may be changed. The last line of above code have a submit button which will submit the values of this page to the action written on the same controller and of course same name. This type of method is called HttpPost, written below:
[HttpPost]
public ActionResult RadioList(FormCollection collection)
{
ValueProviderResult result = collection.GetValue("radioList");
string checkedValue = result.AttemptedValue;
return View();
}
The parameter “collection” will have all the values input by the user on the view, now we have to access the checked value of the radiobutton list defined on the view. The class System.Web.Mvc.ValueProviderResult used to represents the result of binding a value (such as from a form post or query string) to an action-method argument property, or to the argument itself.
After getting the value from the collection the checked value is stored in AttemptedValue property of this class’s object. So we have simply accessed the checked value from the view.
First, create an action in the controller and write a single line which will return that on the view. This type of view is called HttpGet method which only used to get the values on the page, in this case we don’t want any value from this action so we are returning only null view.
public ActionResult RadioList()
{
return View();
}
Add a view having the same name as in above action which have four radio buttons of same name and values defined sequentially, as written in below code:
<h2>RadioList</h2>
@using (Html.BeginForm())
{
<div>
<ul>
<li>@Html.RadioButton("radioList", 1) RadioButton 1 </li>
<li>@Html.RadioButton("radioList", 2) RadioButton 2 </li>
<li>@Html.RadioButton("radioList", 3) RadioButton 3 </li>
<li>@Html.RadioButton("radioList", 4) RadioButton 4 </li>
</ul>
<input type="submit" value="Submit" id="submitBtn" />
</div>
}
All of these radio buttons have the same name “radioList” that may be changed. The last line of above code have a submit button which will submit the values of this page to the action written on the same controller and of course same name. This type of method is called HttpPost, written below:
[HttpPost]
public ActionResult RadioList(FormCollection collection)
{
ValueProviderResult result = collection.GetValue("radioList");
string checkedValue = result.AttemptedValue;
return View();
}
The parameter “collection” will have all the values input by the user on the view, now we have to access the checked value of the radiobutton list defined on the view. The class System.Web.Mvc.ValueProviderResult used to represents the result of binding a value (such as from a form post or query string) to an action-method argument property, or to the argument itself.
After getting the value from the collection the checked value is stored in AttemptedValue property of this class’s object. So we have simply accessed the checked value from the view.