Jak uzyskać metodę MethodInfo akcji, podaną akcję, nazwę kontrolera i nazwy obszaru?
Mam następującą metodę rozszerzenia:
public MyCustomAttribute[] GetActionAttributes(
this Controller @this,
string action,
string controller,
string area,
string method)
{
}
W jaki sposób ASP.NET MVC 3 znajduje metodę działania, biorąc pod uwagę obszar, kontroler, nazwy akcji i metodę (GET, POST)?
Do tej chwili nie mam nic ... żadnych wskazówek, jak to zrobić.
Obecnie szukam śladu stosu wewnątrz akcji kontrolera, aby dowiedzieć się, w jaki sposób MVC go odkryło.
Dlaczego potrzebuję tych atrybutów
Moje atrybuty zawierają informacje o tym, czy dany użytkownik może lub nie ma do niego dostępu ... ale w zależności od tego, czy mogą uzyskać do niego dostęp, czy nie, nie chcę pokazywać ani ukrywać niektórych pól html, linków i innych rzeczy, które mogłyby nazwać to działanie .
Inne zastosowania
Pomyślałem o tym, aby umieścić ten atrybut nad akcją, która mówi klasie css łącza, które zostanie zrealizowane, aby ją wywołać ... i kilka innych wskazówek interfejsu ... a następnie zbuduj HtmlHelper, który wyświetli ten link , patrząc na te atrybuty.
Nie duplikat
Tak, niektórzy powiedzą, że to prawdopodobnie duplikat tego pytania ... nie ma odpowiedzi, której chcę:
Jak mogę uzyskać metodę MethodInfo akcji kontrolera, która zostanie wywołana po otrzymaniu żądania?
Dlatego określiłem okoliczności mojego pytania.