2011-04-22 112 views
1

我不能在这个例子解释模型绑定行为:ASP MVC模型绑定

enum Gender 
{ 
    Male, 
    Female 
} 

@model Gender 
@Html.ActionLink("Test", "Index", new { gender = Model }); 

public ActionResult(string gender) 
{ 
    ViewBag.Gender = gender; 
    return View() 
} 

为什么它的工作原理 - 字符串参数性别行动中正确的访问枚举类型?

回答

2

它的工作原理是绝对一切都可以通过object.ToString()转换为string。此外,它发生在Enum转换产生了一些有用的东西;枚举值的名称的文本。

在大多数情况下,默认活页夹可以在这些值之间来回转换, 加数字转换。

+0

谢谢!但是当你说“大多数情况下是数字的”时,这意味着什么 - 当它的默认联编程序不能转换它时? – Boo 2011-04-22 13:14:35

+0

“在大多数情况下”是错误的措词,我认为......因为这是一个不真实的陈述!字符串是你想要使用的。对我来说这似乎很奇怪,因为一般情况下,通过简单的转换就可以在两个方向上在'int'和'enum'之间进行转换,而Enum.Parse()'不完全直观。 – 2011-04-22 13:17:23