¿Cuál es la mejor manera de deshabilitar el controlador MVC de ASP.NET de forma condicional?Deshabilitar condicionalmente el controlador MVC de ASP.NET
Quiero tener un acceso a las acciones del controlador si algún valor en web.config es "verdadero" y 404 si es "falsa"
¿Debo escribir mi propio atributo?
ACTUALIZACIÓN: Buscando solución más elegante que atributo de filtro de acción (con una capacidad de pasar el parámetro no es constante a atribuir constructor)
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public class CloseForSomeSettingAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
bool mySettingValue = MySettingManager.GetMySettingValue();
if (mySettingValue)
{
filterContext.Result = new HttpStatusCodeResult(404);
}
else
{
base.OnActionExecuting(filterContext);
}
}
}
gracias. he escrito el atributo de filtro de acción (ver mi comentario). pero tal vez exista una solución más elegante? –
No conozco su propósito aquí, pero quizás sea mejor no hacerlo a nivel de aplicación. Estoy pensando en utilizar el módulo url-rewrite de IIS para configurar las reglas para las rutas que busca devolver 404. Observe los siguientes ejemplos: http: //blogs.iis.net/ruslany/archive/2009/04/ 08/10-url-rewriting-tips-and-tricks.aspx – igz168
no. Necesito tener la capacidad de cambiarlo de un archivo web.config. –