自定义enum作为可选参数

本文关键字:参数 enum 自定义 | 更新日期: 2023-09-27 18:08:05

  public enum Employee
    {
        FT,
        PT,
    }

这行不通

  public ActionResult Index(Employee s = Employee.PT)
        {
            ViewData["Message"] = s.ToString();
            return View("MyView");
        }

Exception Details: System。ArgumentException:参数字典包含方法参数"s"的无效条目"System.Web.Mvc.ActionResult指数(SampleControllerEx.Controllers.Employee)"SampleControllerEx.Controllers.HomeController"。字典包含一个"System"类型的值。Int32',但是参数需要a类型"SampleControllerEx.Controllers.Employee"的值。参数参数名称:

public ActionResult Index([DefaultValue(Employee.PT)] Employee s)
        {
            ViewData["Message"] = s.ToString();
            return View("MyView");
        }

我可以知道为什么'DefaultValue'只支持自定义enum,其中可选参数(4.0)不支持它?

自定义enum作为可选参数

您可以这样做:

 public ActionResult Index(int employeeType)
        {
            Employee s = (Employee) employeeType;
            ViewData["Message"] = s.ToString();
            return View("MyView");
        }