-2

私は次のようにドロップダウンリストに記入しています:

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

Id、Code、Nameがあると思いますが、Idしかなく、ModelStateはfalseです。

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を見ると、nameandid属性がそれを示していることがわかります。

ただし、次のように2つの非表示フィールドを入力するだけの場合:

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

それらは値とともにポストバックされます。値が必要な場合は、JavaScriptで割り当てるだけで、ポストバック時にモデルに割り当てられます。

于 2013-01-15T19:56:48.343 に答える