Jaki jest najlepszy sposób na warunkowe wyłączenie kontrolera ASP.NET MVC?Warunkowo wyłączyć kontroler ASP.NET MVC
Chcę mieć dostęp do działań kontrolera jeśli jakaś wartość w pliku web.config jest „true” i 404, czy to „false”
powinienem napisać własny atrybut?
UPDATE: Szukasz bardziej eleganckie rozwiązanie niż atrybut filtra działania (o zdolności do podejmowania nie stały parametr do konstruktora atrybut)
[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);
}
}
}
dzięki. napisałem atrybut filtru akcji (zobacz mój komentarz). ale może istnieje bardziej eleganckie rozwiązanie? –
Nie znam twojego celu tutaj, ale może najlepiej nie robić tego na poziomie aplikacji? Zastanawiam się, używając modułu IIS urr -writerrite do ustawienia reguł dla tras, które chcesz zwrócić. 404. Spójrz na poniższe przykłady: http: //blogs.iis.net/ruslany/archive/2009/04/ 08/10-url-przepisywanie-tips-and-tricks.aspx – igz168
nie. Muszę mieć możliwość przełączenia go z pliku web.config. –