使用EditorFor时选择List

时间:2013-08-21 15:57:16

标签: asp.net-mvc-4 mvc-editor-templates data-annotations

在使用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()的选择列表有任何想法?

0 个答案:

没有答案