Web - MVC 3 a atributy   zodpovězená otázka

ASP.NET MVC

Zdravím. Doufám, že jsem napsal do správné sekce.

Rád bych se zeptal, jak by se daly napsat vlastní atributy pro kontroler, který má dvě akční metody stejného názvu, kde by volání metody bylo podmíněno daným atributem, podobně jako je to s atributy [HttpGet] a [HttpPost]?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Stejně jako u HttpGetAttribute a HttpPostAttribute podědíte nový atribut z ActionMethodSelectorAttribute:

http://msdn.microsoft.com/en-us/library/...

Uvnitř této třídy naimplementujete metodu IsValidForRequest, ve které se rozhodnete, zda se má požadavek provést:

http://msdn.microsoft.com/en-us/library/...

Jen ze zvědavosti - na co potřebujete tento typ atributů?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

S ASP, resp. MVC 3 moc zkušeností nemám.

Nicméně mám View pojmenován Index (default), kdy z View mám v kontroleru metodou ActionResult Index() mimo jiné převážně zpracováváno filtrování.

Dále mám ve View definované tlačítko pro zazipování vybraného obsahu dané stránky, kdy toto je přes submit pomocí jQuery předáno též do kontroleru metodě ActionResult Index().

Já bych rád ovšem filtrování a zipování držel od sebe.

Vzhledem k neznalosti, mě nic jiného nenapadlo, než obě metody ActionResult Index() od sebe oddělit attributy, např, [ActionName("One")] a [ActionName("Two")]...

Problém nystal v tom, že nevím, jak tyto atributy definovat... Případně kdyby existoval jiný způsob, rozhodně bych se mu nebránil...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V tomto případě mějte každou akci pojmenovanou jinak. Není důvod, aby se jmenovali stejně.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vyřešeno... Nakonec jsem místo atributů použil jen jQuery a metody pojmenoval každou jinak.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback