2012-03-28 6 views
0
erforderlich machen

Unten ist meine Klasseasp.net mvc code zuerst. Drop-Down-

public class Item 
{ 
    public int ItemID { get; set; } 

    [Required(ErrorMessage = "Unit of measure1 is required.")] 
    public int Uom1Id { get; set; } 
    public UnitOfMeasure Uom1 { get; set; } 

    [Required(ErrorMessage = "Unit of measure2 is required.")] 
    public int Uom2Id { get; set; } 
    public UnitOfMeasure Uom2{ get; set; } 
} 

public class UnitOfMeasure 
{ 
    public int UnitOfMeasureID { get; set; } 
    public string MeasureName { get; set; } 
} 

Mein initializer unter:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 

     modelBuilder.Entity<Item>().HasRequired(x => x.StockUnitOfMeasure) 
     .WithMany() 
     .HasForeignKey(x => x.StockUnitOfMeasureId).WillCascadeOnDelete(false); 

     modelBuilder.Entity<Item>().HasRequired(x => x.PurchaseUnitOfMeasure) 
      .WithMany() 
      .HasForeignKey(x => x.PurchaseUnitOfMeasureId).WillCascadeOnDelete(false); 

    } 

erstellen Code:

<div class="editor-label"> 
     @Html.LabelFor(model => model.Uom1Id, "Stock Unit Of Measure") 
    </div> 
    <div class="editor-field"> 
     @Html.DropDownList("Uom1Id", String.Empty) 
     @Html.ValidationMessageFor(model => model.Uom1Id) 
    </div> 

Im neu zu EF, ich weiß nicht, warum das Attribut [Erforderlich ] funktioniert nicht für das Feld Uom1Id und Uom2Id, aber es funktioniert mit anderen Feldern in meinen anderen Klassen.

Das Viewdata Element, das den Schlüssel hat ‚Uom1Id‘ ist von Typ ‚System.Int32‘, sondern muß vom Typ ‚IEnumerable‘ sein.

Dank

Antwort

0

int kann nicht null sein, weil es ein wertvoller Typ ist, so gibt es keine Notwendigkeit, das Required Attribut Uom1Id und Uom2Id hinzuzufügen. Für die Benutzeroberfläche können Sie ein Ansichtsmodell erstellen, in dem Uom1Id und Uom2Idint? (nullbar) sind.

+0

danke Andrei, ich bekomme einen Fehler beim Drücken der create-Taste, wenn die beiden Dropdown-Felder leer waren. Wie werde ich das Dropdown-Formular erstellen? Vielen Dank – samantha07

Verwandte Themen