自定义枚举作为可选参数

时间:2013-04-09 06:22:39

标签: c# asp.net .net asp.net-mvc

  public enum Employee
    {
        FT,
        PT,
    }

这不起作用

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

            return View("MyView");
        }
  

异常详细信息: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'只支持自定义枚举,可选参数(4.0)不支持它吗?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

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

            return View("MyView");
        }