public enum Employee
{
FT,
PT,
}
Cela ne fonctionne pasENUM personnalisée comme paramètre optionnel
public ActionResult Index(Employee s = Employee.PT)
{
ViewData["Message"] = s.ToString();
return View("MyView");
}
Détails de l'exception: System.ArgumentException: Les paramètres dictionnaire de contient une entrée non valide pour le paramètre 's' pour la méthode « Système .Web.Mvc.ActionResult Index (SampleControllerEx.Controllers.Employee) 'dans ' SampleControllerEx.Controllers.HomeController '. Le dictionnaire contient une valeur de type 'System.Int32', mais le paramètre requiert une valeur de type 'SampleControllerEx.Controllers.Employee'. Paramètre Nom: paramètres
Mais au-dessous, on travaille
public ActionResult Index([DefaultValue(Employee.PT)] Employee s)
{
ViewData["Message"] = s.ToString();
return View("MyView");
}
Puis-je savoir pourquoi 'DefaultValue' ne supporte que ENUM personnalisé, où le paramètre optionnel (4.0) ne supporte pas?
Sons comme votre routage est erroné. – leppie
@leppie DefaultValue fonctionne avec le même routage. pourquoi l'option .net 4.0 ne fonctionne-t-elle pas correctement? –
Il serait plus facile de rendre le paramètre nullable. Si vous voulez utiliser le paramètre, vous pouvez utiliser 'if ((s ?? Employee.PT) == Employee.PT) {// du code}' – Silvermind