…meie igapäevast IT’d anna meile igapäev…

2011-05-12

ASP.NET MVC: Enum binding helper

Filed under: ASP.NET MVC — Sander @ 12:32:01
Tags: ,

Binding enums in the modelbinder is a just bit different than other values, so I wrote another small method for enums into my BinderHelper:

public T GetEnum<T>(string keyName, T defaultValue) where T : struct
{
	if (string.IsNullOrEmpty(ValueCollection[keyName]))
		return defaultValue;  
	var value = ValueCollection[keyName];   
	Enum.TryParse(value, true, out defaultValue);
	return defaultValue;
}

ValueCollection is a NameValueCollection, like described in the BinderHelper post linked above.

Using it is simple:

myModel.EnumValue = _binder.GetEnum("EnumValue", MyEnum.DefaultValue);

4 kommentaari »

  1. Sa kunagi kirjutasid igasugu põnevaid asju, aga nüüd puhas Pisipehme tooteõpetus … kuhu asjalikud mõtted ja vabadus jäänud on? .NET ei ole asi millele midagi ehitama hakata!

    kommentaar kirjutas madis — 2011-05-13 @ 21:49:43 | Vasta

    • Ehk sa mainid siis, mis need “mõtted ja vabadus” on? Ruby (on Rails)? Java? Python? Go? Lisp?

      Sorry, aga midagi mõttetumat .NET vihkamisest seetõttu, et see MS tehtud on, on raske välja mõelda. Olgem ausad, hetkel on Java oluliselt suletum kui .NET – rääkimata korralikust tehnoloogilisest mahajäämusest, suuresti tänu Oracle “käib-kah” filosoofiale. Oracle poolt on “mõtteid ja vabadust” märksa vähem loota, kui Microsoftilt.

      Ning ASP.NET MVC on teatavasti opensource täies ulatuses. Vabadust kui palju.

      kommentaar kirjutas Sander — 2011-05-13 @ 23:40:11 | Vasta

  2. No ma pigem eelistaksin Pythonit isiklikult, aga vahet ei ole mis – peaasi, et keel korralikult Unix/Linux maailmas ka kasutatav oleks. Vastasel korral on juba opsüsteemi poolt pakkuja peale lukustumine. Peale Novelli jagamist oleksin praegu väga ettevaatlik ka Mono peale midagi tegema hakkama. Enamik .NET’i värki on muidugi Javale sarnane, aga jah – Java on mahajäänud ammu. Või on sul andmeid, et Mono peale võib rakendusserveriplatvormina loota?

    kommentaar kirjutas madis — 2011-05-16 @ 17:28:30 | Vasta

    • Miks peaks mulle oluline olema, et keel oleks Linuxi/Unixi peal kasutatav? Minu .NET peal kirjutatud veebirakendusi saab kasutada mitte ainult Linuxi vaid ka Windowsi, MacOS, Chromium OS, BSD jne peal. Peaasi, et oleks standardeid toetav brauser.

      Aga fat client‘e kirjutaksin ma pigem platvormipõhisel keelel, vajadusel kasutades C/C++ taustal kiiruse jaoks. Ma pole veel näinud multiplatvormi toetavat kasutajaliidese frameworki, mis töötaks ilusti ja hästi kõikidel opsüsteemidel, seejuures toetades teemasid ning natiivsest rakendusest välimuse poolest mitte erinedes.

      Monot kasutatakse palju toodanguserverites, ka Eestis. Päris mitmete riigirakenduste juures jookseb Mono taustaks – tõsi, viimasel ajal minnakse kas otse ASP.NET või Java peale.

      Ning Python… äsja oli riigihange, milles nõuti mingil arusaamatul põhjusel rakenduse kirjutamist Pythonis. Minuteada laekus sellele üks (1) nõuetele vastav pakkumine, seejuures selles firmas “on kunagi Pythonit kirjutatud”. Kardan, et ca 90% tõenäosusega saadakse totaalne käkk.

      kommentaar kirjutas Sander — 2011-05-16 @ 18:45:49 | Vasta


RSS feed for comments on this post. TrackBack URI

Lisa kommentaar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Muuda )

Twitter picture

You are commenting using your Twitter account. Log Out / Muuda )

Facebook photo

You are commenting using your Facebook account. Log Out / Muuda )

Google+ photo

You are commenting using your Google+ account. Log Out / Muuda )

Connecting to %s

Create a free website or blog at WordPress.com.