mam inspirowane z bardzo użyteczną odpowiedź od Francois Borgies, więc postanowiłem napisać niestandardową metodę, która tworzy SelectList dla Boolean wartości, które mogą być wykorzystane w @Html .DropDownList. Gdy masz metodę pomocniczą, którą można zastosować w każdym widoku, zmniejsza ona ilość kodu potrzebnego w widokach maszynki.
Mój projekt ma CustomHelpers.cs klasy w folderze: App_Code/Pomocnicy
namespace YourProjectName.App_Code.Helpers
{
public static class CustomHelpers
{
public static SelectList SelectListForBoolean(object selectedValue = null)
{
SelectListItem[] selectListItems = new SelectListItem[2];
var itemTrue = new SelectListItem();
itemTrue.Value = "true";
itemTrue.Text = "Yes";
selectListItems[0] = itemTrue;
var itemFalse = new SelectListItem();
itemFalse.Value = "false";
itemFalse.Text = "No";
selectListItems[1] = itemFalse;
var selectList = new SelectList(selectListItems, "Value","Text", selectedValue);
return selectList;
}
}
}
W widoku tworzyć można go używać w następujący sposób:
@model Foo
@using YourProjectName.App_Code.Helpers;
...
@Html.DropDownList("EndCurrentDeal", CustomHelpers.SelectListForBoolean(), "-select-")
dla edytuj zobacz
@model Bar
@using YourProjectName.App_Code.Helpers;
...
@Html.DropDownList("EndCurrentDeal", CustomHelpers.SelectListForBoolean(Model.EndCurrentDeal), "-select-")
Chociaż moja metoda pomocnika nie jest czysty HTML Helper ponieważ tworzy SelectList, - to jednak następuje samą funkcjonalność, która została przedstawiona przez Rahula Rajat Singh, w swoim znakomitym artykule An Absolute Beginner's Tutorial on HTML Helpers and Creating Custom HTML Helpers in ASP.NET MVC
zobaczyć tę odpowiedź http: // stackoverflow.com/a/9885229/138071 –