2
  public enum Employee
    {
        FT,
        PT,
    }

这不起作用

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

            return View("MyView");
        }

异常详细信息:System.ArgumentException:参数字典包含“SampleControllerEx.Controllers.HomeController”中方法“System.Web.Mvc.ActionResult Index(SampleControllerEx.Controllers.Employee)”的参数“s”的无效条目。字典包含“System.Int32”类型的值,但参数需要“SampleControllerEx.Controllers.Employee”类型的值。参数名称:参数

但是下面的一个作品,

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

            return View("MyView");
        }

我可以知道为什么'DefaultValue'只支持自定义枚举,而可选参数(4.0)不支持它吗?

4

1 回答 1

1

你可以这样做:

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

            return View("MyView");
        }
于 2013-04-09T18:53:21.633 回答