-2

我正在填写一个下拉列表,如下所示:

@Html.DropDownListFor(model => model.Department.Id, new SelectList(db.PhoenixIKDepartments.ToList(), "Id", "Name"))

我希望有 Id、Code 和 Name,但只有 Id 和 ModelState 是假的。

public class Phoenix_IK_Persons
{      
    [Key]
    public int Id { get; set; }

    [StringLength(50)]
    public string Name { get; set; }

    [StringLength(500)]
    public string Surname { get; set; }

    [StringLength(50)]
    public string Registry { get; set; }

    public Phoenix_IK_Departments Department { get; set; }
}

public class Phoenix_IK_Departments
{
    [Key]
    public int Id { get; set; }

    [StringLength(50)]
    [Required(AllowEmptyStrings=false, ErrorMessage="Lütfen Kod Giriniz!")]
    public string Code { get; set; }

    [Required(AllowEmptyStrings = false, ErrorMessage = "Lütfen Ad Giriniz!")]
    [StringLength(500)]
    public string Name { get; set; }        
}

您能帮我用 ID、名称和代码正确填写下拉列表吗?

先感谢您!

4

1 回答 1

1

Code模型上没有填充的原因Name是因为这些字段没有包含在任何地方的标记中没有填充。<form>这行代码:

model => model.Department.Id

将该下拉列表绑定到该字段。如果您查看生成的 HTML,您会注意到nameid属性表明了这一点。

但是,如果您只是像这样放入两个隐藏字段:

@Html.HiddenFieldFor(model => model.Department.Code);
@Html.HiddenFieldFor(model => model.Department.Name);

他们会被带回价值。如果您需要它们具有值,您可以简单地在 JavaScript 中分配它们,当它们被回发时,它们将被分配给模型。

于 2013-01-15T19:56:48.343 回答