Atrybut [ChildActionOnly] w ASP MVC

Wczoraj opisywałem atrybut [NonAction]. Do manipulowania dostępnością akcji przez URL można się też posłużyć atrybutem [ChildActionOnly]. Jego działanie jest mniej restrykcyjne, ponieważ dopuszcza on wywołanie takiej akcji, ale tylko przy użyciu helpera RenderAction. Na początek prosta demonstracja, przykładowego, bardzo prostego kontrolera:

Widok częściowy „DayInfo” to:

Jak się można domyślić wywołanie w przeglądarce akcji „DayInfo” da następujący efekt:

child action

Jednak wywoływanie przez URL częściowych widoków, może nie być zachowaniem oczekiwanym przez programistę. Po od komentowaniu atrybutu [ChildActionOnly] tracimy możliwość wywoływania akcji „DayInfo” przez URL:

child only after

Następny przykład pokazuje jak wywołać „DayInfo” za pomocą helpera RenderAction. Pierwszym krokiem będzie rozbudowa kontrolera z pierwszego przykładu:

Następnie modyfikacja widoku „Index”:

Efektem wywołania akcji Index jest:

child action2

Czyli to czego oczekiwaliśmy. Jeżeli zamiast helpera RenderAction użyjmey RenderPartial to tekst „Child Action Only Demo” nie zostanie wyświetlony.

Share

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Time limit is exhausted. Please reload the CAPTCHA.