title: How can I use a Html.DropDownListFor without a lambda expression?
body: <p>I have the following code that works:</p>
  
  <pre><code>@for (var index = 0; index &lt; Model.AdminSummaries.Count(); index++) {
  
     &lt;div class="rep_td0" id="rk_@(index)"&gt;
        @Model.AdminSummaries[index].RowKey
     &lt;/div&gt;
     &lt;div class="rep_td0"&gt; 
     @Html.DropDownListFor(
        x =&gt; x.AdminSummaries[index].Status, 
        new SelectList(
              AdminStatusReference.GetAdminStatusOptions(),
              "Value",
              "Text",
        ), 
        new { id = string.Format("Status_{0}", index) }
     )
  </code></pre>
  
  <p>I iterate through Model.AdminSummaries which is a type of </p>
  
  <pre><code>public IList&lt;AdminSummary&gt; AdminSummaries { get; set; }
  </code></pre>
  
  <p>As it is an IList I can use the indexing and x => x.AdminSummaries[index].Status works to get the correct status for each row and there's also an index number that I can use to change the id of items for each row.</p>
  
  <p>Now I have a problem. I want to apply the same code method to the following which is a class in my model with similar fields to AdminSummaries (including a Status field):</p>
  
  <pre><code>public ICollection&lt;Item&gt; Items { get; set; }
  </code></pre>
  
  <p>As it is an ICollection I think I cannot access elements using the [index]</p>
  
  <p>I can use a foreach but HOW can I supply the status value to the first parameter of DropDownListFor? Also how can I get an index value so I can index the fields in the rows.</p>
  
  <p><strong>Update</strong></p>
  
  <p>The index point was something I added to the original question. Important that the solution can do something like the following so I can use jQuery on form fields later. </p>
  
  <pre><code>id="rk_@(index)"
  </code></pre>