Was ist der beste Weg, um ASP.NET MVC Controller bedingt zu deaktivieren?Bedingte deaktivieren ASP.NET MVC Controller
ich einen Zugriff auf die Controller-Aktionen haben will, wenn einige Werte in web.config „true“ sind und 404, wenn es „false“
Soll ich mein eigenes Attribut schreiben?
UPDATE: der Suche nach elegantere Lösung als Action-Filter-Attribut (mit einer Fähigkeit Attributkonstruktor nicht konstanten Parameter zu übergeben)
[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);
}
}
}
Dank. habe das Action Filter Attribut geschrieben (siehe mein Kommentar). aber vielleicht gibt es eine elegantere Lösung? –
Ich kenne Ihren Zweck hier nicht, aber vielleicht ist es am besten, dies nicht auf Anwendungsebene zu tun? Ich denke, mit IIS URL-Rewrite-Modul zu Regeln für die Routen, die Sie 404 zurückgeben wollen, einrichten. Werfen Sie einen Blick auf die folgenden Beispiele: http: //blogs.iis.net/ruslany/archive/2009/04/ 08/10-url-rewriting-tipps-and-tricks.aspx – igz168
nein. Ich muss eine Möglichkeit haben, es aus einer web.config-Datei zu wechseln. –