2017-03-29 15 views
0

私は、内部クラスtripSeatPreferenceのリストを持つモデルを持っています。そのリスト内の各アイテムについて、ラジオボタンの新しいグループを作成したいと思います。私はビューの下に私の試みを書いている、それは今私のインデックスが私のforループ内の範囲外であるように思われます。複数の同じラジオボタングループを作成する

モデル:

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.Linq; 
using System.Web; 
using MVC_COMP1562.Models; 

namespace MVC_COMP1562.ViewModels 
{ 
    public class SeatPreferencesShoppingCartViewModel 
    { 
     public ShoppingCart ShoppingCart { get; set; } 
     public float Total { get; set; } 
     public List<tripSeatPreference> Preferences { get; set; } 

     public IEnumerable<string> SeatPreferenceOptions { get; set; } 

     public class tripSeatPreference 
     { 
      public int Id { get; set; } 
      [Required] 
      public int? SeatPreferenceSelected { get; set; } 
      public CartItem CartItem { get; set; } 
     } 
    } 
} 

ビュー:

@model MVC_COMP1562.ViewModels.SeatPreferencesShoppingCartViewModel 

<table class="table"> 

    @for(int i=0;i<Model.SeatPreferenceOptions.Count();i++) 
    { 
     <tr> 
      <td>@Html.DisplayFor(m=>Model.Preferences[i].CartItem.Trip.Title)</td> 
     </tr> 
     foreach (var radio in Model.SeatPreferenceOptions) 
     { 
      <tr> 
       <td>@Html.RadioButtonFor(m => Model.Preferences[i].SeatPreferenceSelected, Model.Preferences[i].Id, new { id = Model.Preferences[i].Id })</td> 
       <td><label for="@Model.Preferences[i].Id">@radio</label><td/> 
      </tr> 
     } 
    } 

</table> 

答えて

0

ループ内であなたは明らかに失敗しますSeatPreferenceOptionsコレクションのインデックスを使用してSeatPreferencesからアイテムを取得しようとしているときのように、SeatPreferenceOptionsにループしていますそのうちの1つに多かれ少なかれアイテムが存在する可能性がありますので、ループを以下から変更してください:

@for(int i=0;i<Model.SeatPreferenceOptions.Count();i++) 

to:

@for(int i=0;i<Model.SeatPreferences.Count();i++) 
関連する問題