three ways creating custom helpers to show RadioButtonList in MVC
2013-03-03 01:39
417 查看
first way is using the extension method to build the helper:
second way is building helpers in current view page:
the third way is building helpers in a view under App_Code folder:
how to use these helpers:
public class ListOption { public string Text { get; set; } public object Value { get; set; } } public static class CustomHelperExtensions { public static MvcHtmlString RadioButtonList(this HtmlHelper helper, string name, object selectedValue, params ListOption[] options) { int i = 0; StringBuilder builder = new StringBuilder(); foreach (var option in options) { bool isChecked = selectedValue == null ? false : selectedValue.ToString() == option.Value.ToString(); var controlId = name + i; var mvcString = helper.RadioButton(name, option.Value, isChecked, new { id = controlId }); builder.AppendLine(mvcString.ToHtmlString()); TagBuilder tag = new TagBuilder("label"); tag.MergeAttribute("for", controlId); tag.InnerHtml = option.Text; builder.AppendLine(tag.ToString()); i++; } return MvcHtmlString.Create(builder.ToString()); } public static MvcHtmlString RadioButtonList(this HtmlHelper helper, string name, object selectedValue, params string[] options) { var newOptions = new List<ListOption>(); foreach (var option in options) { newOptions.Add(new ListOption { Text = option, Value = option }); } return helper.RadioButtonList(name, selectedValue, newOptions.ToArray()); } public static MvcHtmlString YesNoRadioButtonList(this HtmlHelper helper, string name, object selectedValue) { return helper.RadioButtonList(name, selectedValue, "Yes", "No"); } }
second way is building helpers in current view page:
@helper RadioButtonList(string name, object selectedValue, params ListOption[] options) { int i = 0; foreach (var option in options) { bool isChecked = selectedValue == null? false : selectedValue.ToString() == option.Value.ToString(); string id = name + i; @Html.RadioButton(name, option.Value, isChecked, new { id = id }) <label for="@id"> @option.Text</label> i++; } } @helper RadioButtonList(string name, object selectedValue, params string[] options) { var newOptions = new List<ListOption>(); foreach (var option in options) { newOptions.Add(new ListOption { Text = option, Value = option }); } @RadioButtonList(name, selectedValue, newOptions.ToArray()); } @helper YesNoRadioButtonList(string name, object selectedValue) { @RadioButtonList(name, selectedValue, "Yes", "No"); }
the third way is building helpers in a view under App_Code folder:
@using MVC = System.Web.Mvc; @using System.Web.Mvc.Html; @using MvcApplication8.Models; @helper RadioButtonList(MVC.HtmlHelper htmlHelper, string name, object selectedValue, params ListOption[] options) { int i = 0; foreach (var option in options) { bool isChecked = selectedValue == null ? false : selectedValue.ToString() == option.Value.ToString(); string id = name + i; @htmlHelper.RadioButton(name, option.Value, isChecked, new { id = id }) <label for="@id">@option.Text</label> i++; } } @helper RadioButtonList(MVC.HtmlHelper htmlHelper, string name, object selectedValue, params string[] options) { var newOptions = new List<ListOption>(); foreach (var option in options) { newOptions.Add(new ListOption { Text = option, Value = option }); } @RadioButtonList(htmlHelper, name, selectedValue, newOptions.ToArray()); } @helper YesNoRadioButtonList(MVC.HtmlHelper htmlHelper, string name, object selectedValue) { @RadioButtonList(htmlHelper, name, selectedValue, "Yes", "No"); }
how to use these helpers:
@YesNoRadioButtonList("myo1", "") <br /> @RadioButtonList("myo2", "", new ListOption[] { new ListOption { Text = "Yes", Value = 1 }, new ListOption { Text = "No", Value = 2 } }) <br /> @RadioButtonList("myo3", "", "A", "B", "C", "D") <hr /> <br/> @Html.YesNoRadioButtonList("myo4", "") <br /> @Html.RadioButtonList("myo5", "", new ListOption[] { new ListOption { Text = "Yes", Value = 1 }, new ListOption { Text = "No", Value = 2 } }) <br /> @Html.RadioButtonList("myo6", "", "A", "B", "C", "D") <hr /> <br/> @CustomHelpers.YesNoRadioButtonList(Html,"myo7", "") <br /> @CustomHelpers.RadioButtonList(Html, "myo8", "", new ListOption[] { new ListOption { Text = "Yes", Value = 1 }, new ListOption { Text = "No", Value = 2 } }) <br /> @CustomHelpers.RadioButtonList(Html, "myo9", "", "A", "B", "C", "D")
相关文章推荐
- Part 9 - Generating a radiobuttonlist control in mvc using HTML helpers
- Three ways to set a custom busy cursor in flex
- Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE
- Part 82 - Creating custom validation attribute in asp.net mvc
- How to create custom html helper in Asp.net MVC 3 or 4
- Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE
- Three ways to set specific DeviceFamily XAML Views in UWP
- Three ways to throw exception in C#. Which is your preference?
- Three steps to use jQuery UI in ASP.NET MVC 5
- How to set custom JsonSerializerSettings for Json.NET in MVC 4 Web API?
- XAF How to show custom forms and controls in XAF (Example)
- Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE
- sharepoint ECMA using a custom contentType to creating a list in SubSite
- How to create custom ViewEngine in MVC 2
- Creating a NuGet Package in 7 easy steps - Plus using NuGet to integrate ASP.NET MVC 3 into existing Web Forms applications
- creating-skeletal-animation-in-blender-and-exporting-it-to-three-js
- ASP.NET MVC- VIEW Creating Custom HTML Helpers Part 2
- (空中英语)Five Ways to Make a Difference in Your Community
- XCode4.6: Three steps to debug the static library in the application
- Create Timer Example To Show Image Presentation in Oracle Forms