Сначала код asp.net mvc. сделать раскрывающийся список обязательным

Ниже мой класс

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; }
}

Мой инициализатор ниже:

    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);

    }

Создать код:

<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>

Я новичок в EF, я не знаю, почему атрибут [Required] не работает для полей Uom1Id и Uom2Id, но он работает с другими полями в других моих классах.

Элемент ViewData с ключом «Uom1Id» имеет тип «System.Int32», но должен иметь тип «IEnumerable».

Спасибо


person samantha07    schedule 28.03.2012    source источник


Ответы (1)


int не может быть нулевым, поскольку это ценный тип, поэтому нет необходимости добавлять атрибут Required к Uom1Id и Uom2Id. Для пользовательского интерфейса вы можете создать модель представления, в которой Uom1Id и Uom2Id будут int? (обнуляемые).

person Andrei Schneider    schedule 28.03.2012
comment
спасибо, Андрей, я получаю сообщение об ошибке при нажатии кнопки «Создать», если два раскрывающихся списка были пустыми. Как сделать раскрывающийся список обязательным? Благодарность - person samantha07; 28.03.2012