在使用SelectList
时尝试让Html.EditorForModel()
正确显示时,我遇到了一种奇怪的行为。
我有以下Model
:
public class LoginModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
public string Gender { get; set; }
[UIHint("SelectList")]
public SelectList AvailibleGender { get; set; }
}
正如您所看到的,我有一个SelectList
项,其中包含要放入Gender字符串的值。我已经覆盖了SelectList EditorTemplate
,现在它有一个显示警告框的简单脚本标记。
当我使用EditorFor(m=>AvailableGender)
时,我的警报框会触发,这意味着编辑器正确选择了我的SelectList模板。
当我使用EditorForModel()
时,我的警告框不会触发。
如果我按如下方式更改模型:
[UIHint("SelectList")]
public string AvailibleGender { get; set; }
..然后我的SelectList模板确实被点击了,我看到了警告信息。
所以看起来有些东西特别阻止了SelectList。
如果它与特定的自定义类型有关,我尝试添加object.cshtml
文件,但这也不会被调用。所以似乎SelectList
类型在某处丢失了。
有没有人对如何使用EditorForModel()的选择列表有任何想法?