Mariah
Mariah

Reputation: 727

Cannot apply indexing with [] to an expression of type ICollection

Can someone please provide code to fix this error?

"Cannot apply indexing with [] to an expression of type 'ICollection'

Essentially, I'm trying to save/bind a value from a collection of objects.

@model MVC3.Models.Parent

@Html.EditorFor(model => model.Bs[0].Val) 

public  class A
{
    public int Name { get; set; }
    public virtual ICollection<B> Bs { get; set; }
}

public  class B
{
    public int Val { get; set; }
    public virtual A A { get; set; }
}

Upvotes: 3

Views: 7127

Answers (2)

user1726190
user1726190

Reputation: 51

Use IList

public  class A
{
   public int Name { get; set; }
   public virtual IList<B> Bs { get; set; }
}

Upvotes: 0

SLaks
SLaks

Reputation: 887395

ICollections are not ordered, so that cannot be indexed.

Instead, you should use a separate ViewModel class with IList<T> property.

Upvotes: 9

Related Questions