Добавив свой собственный HtmlHelper в ASP.NET в MVC 3 | VPROS.ru

Добавив свой собственный HtmlHelper в ASP.NET в MVC 3

Я новичок в MVC и я пытаюсь создать мой собственный метод расширения, так что я могу добавить на HTML-помощников, которые доступны в моих представлениях Razor. Html.DropDownListFor() позволяет создать выпадающий список для любой недвижимостью на вашей модели. Я хотел бы создать вспомогательный называется Html.StateDropDownListFor() что делает то же самое, за исключением нагрузки падение вниз со всех 50 штатов США. Таким образом, я не должен создать SelectList для каждого государства, падение вниз, что я создаю. Какой самый простой способ сделать это? Сейчас у меня есть это:

public static class ExtensionMethods {     public static MvcHtmlString StateDropDownList(this HtmlHelper html)     {         // ???     } } 

Я даже близко? Я не хочу, чтобы перестроить весь текст помощник коробку, я просто хочу, чтобы создать помощника, который использует существующий текст помощник коробке, но не SelectList для меня. Этак в мои взгляды я мог бы просто сделать Html.StateDropDownList(x => x.State)

Ваши ответы очень ценятся.

Вот вам и ответ!

Вы, ребята, очень помогают, спасибо! Вот и завершен метод расширения в случае, если кто-нибудь имеет применение.

    public static MvcHtmlString StateDropDownListFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)     {         Dictionary<string, string> stateList = new Dictionary<string, string>()         {             {"AL"," Alabama"},             {"AK"," Alaska"},             {"AZ"," Arizona"},             {"AR"," Arkansas"},             {"CA"," California"},             {"CO"," Colorado"},             {"CT"," Connecticut"},             {"DE"," Delaware"},             {"FL"," Florida"},             {"GA"," Georgia"},             {"HI"," Hawaii"},             {"ID"," Idaho"},             {"IL"," Illinois"},             {"IN"," Indiana"},             {"IA"," Iowa"},             {"KS"," Kansas"},             {"KY"," Kentucky"},             {"LA"," Louisiana"},             {"ME"," Maine"},             {"MD"," Maryland"},             {"MA"," Massachusetts"},             {"MI"," Michigan"},             {"MN"," Minnesota"},             {"MS"," Mississippi"},             {"MO"," Missouri"},             {"MT"," Montana"},             {"NE"," Nebraska"},             {"NV"," Nevada"},             {"NH"," New Hampshire"},             {"NJ"," New Jersey"},             {"NM"," New Mexico"},             {"NY"," New York"},             {"NC"," North Carolina"},             {"ND"," North Dakota"},             {"OH"," Ohio"},             {"OK"," Oklahoma"},             {"OR"," Oregon"},             {"PA"," Pennsylvania"},             {"RI"," Rhode Island"},             {"SC"," South Carolina"},             {"SD"," South Dakota"},             {"TN"," Tennessee"},             {"TX"," Texas"},             {"UT"," Utah"},             {"VT"," Vermont"},             {"VA"," Virginia"},             {"WA"," Washington"},             {"WV"," West Virginia"},             {"WI"," Wisconsin"},             {"WY"," Wyoming"},             {"AS"," American Samoa"},             {"DC"," District of Columbia"},             {"FM"," Federated States of Micronesia"},             {"MH"," Marshall Islands"},             {"MP"," Northern Mariana Islands"},             {"PW"," Palau"},             {"PR"," Puerto Rico"},             {"VI"," Virgin Islands"},             {"GU"," Guam"}         };         return html.DropDownListFor(expression, new SelectList(stateList, "key", "value"));     } 

Я изменил код выше, чтобы использовать словарь для государственных сокращений.

Только не забудьте ссылку System.Web.Mvc.Html в верхней части метод расширения класса как я забыл, черт!

One Reply to “Добавив свой собственный HtmlHelper в ASP.NET в MVC 3”

  1. using System.Web.Mvc.Html; public static MvcHtmlString StateDropDownList<TModel, TValue>( this HtmlHelper<TModel> html,     Expression<Func<TModel, TValue>> expression ) {         return html.DropDownListFor( expression, _stateList ); } 

    Будет работать. _stateList будучи IEnumerable<SelectListItem>.

Comments are closed.