Est-il possible de créer une vue partielle comportant un contrôleur qui peut être appelé à partir d'une autre vue à l'aide de la fonction
Html.RenderAction(...)
MAIS sans que ce même contrôleur soit accessible via une URL ?
Ainsi, par exemple
public class ArticlesController : Controller
{
public ActionResult HomeList()
...
}
Donne une liste des derniers articles pour le bas de mes pages web.
Je l'appelle donc à partir de
_Layout.cshtml
Cependant, je ne veux pas que quelqu'un vienne à
mysite.com/Articles/HomeList
et voir la même liste pour diverses raisons (sécurité, référencement, etc.)
Remerciements
Editer :
J'ai fini par utiliser ma propre classe d'attributs, grâce à l'aide de Russ :
public class ChildActionOnly404Attribute : FilterAttribute, IAuthorizationFilter
{
void IAuthorizationFilter.OnAuthorization(AuthorizationContext filterContext)
{
if (!filterContext.IsChildAction)
{
throw new HttpException(404, "");
}
}
}