Ich habe eine MVC Controller Aktion mit einem Parameter, der nur mit bestimmten Werten für diesen Parameter (null/leer und einige spezifische Strings) aufgerufen werden sollte, in anderen Fällen sollte es nicht getroffen werden (404 meist). Ich habe versucht, eine RegexRouteConstraint wie unten zu verwenden. Aber das filtert die spezifischen Zeichenfolgen nicht.MVC Controller Action sollte nur bestimmte Parameterwerte behandeln, sonst
var route = new Route("{soortAanbod}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new { controller = "Homepage", action = "Index", soortAanbod = UrlParameter.Optional }),
Constraints = new RouteValueDictionary(new { soortAanbod = new RegexRouteConstraint("a|b|c|d|e") }),
DataTokens = new RouteValueDictionary { { "area", context.AreaName } }
};
context.Routes.Add("Homepage_soortAanbod", route);
Der Controller sieht wie folgt aus: public ActionResult Index(string soortAanbod)
ich auch ein Action-Filter versucht haben, mit aber das vermasselt andere andere Filter auf. Wie kann ich diese Route nur für die angegebenen Werte für soortAanbod anpassen?
wenn diese eine bestimmte Aktion ist, haben Sie die Wahl, um es direkt durch den Code in Ihre Aktion zu behandeln – cdie
Es mehrere Aktionen ist die gleiche Einschränkung verwenden. Code kann eine Option sein, aber es ist eher un-MVC – mnwsmit