ここではMVC4を使用しており、XMLファイルから生成されたアクティビティのリストのページがあります。複数のアクティビティをチェックでき、各アクティビティ内でユーザーは日付、大人/子供の数を設定できます。私の計画では、ユーザーが[送信]をクリックすると、チェックされたすべてのアクティビティがActivityItemのリストに入れられます。これが私がActivityItemを定義したものです:
ActivityItemクラス
public class ActivityItem
{
public string ActivityID { get; set; }
public string Name { get; set; }
public string Date { get; set; }
public int NumAdults { get; set; }
public int NumChildren { get; set; }
public decimal TotalPrice { get; set; }
}
私のビューは次のようになります(コードを読みやすくするために、多くのスタイルとフォーマットを削除しました)。@ item.ActivityIDは、「ACT001」、「ACT002」、「ACT003」の順に始まり、n回まで続くことに注意してください。
@model IEnumerable<Project.Models.Activity>
@using (Html.BeginForm())
{
<ul data-role="listview" data-inset="true">
@foreach (var item in Model)
{
<li>
<div class="activity" id="@item.ActivityID">
<h3>@item.Name</h3>
<input type="checkbox" id="@item.ActivityID-Check" name="checkbox"/>
<label for="select-choice-0" class="select">Date:</label>
<select name="select-choice-0" id="@item.ActivityID-Date">
<option value="07/03/2012">07/03/2012</option>
<option value="07/04/2012">07/04/2012</option>
<option value="07/05/2012">07/05/2012</option>
<option value="07/06/2012">07/06/2012</option>
</select>
@Html.DropDownList(item.ActivityID+"-AdultNum", AdultNum)<br />
Price/Adult C$:@Html.TextBox(item.ActivityID+"-AdultPrice", item.PricePerAdult)
@Html.DropDownList(item.ActivityID+"-ChildNum", ChildNum)<br />
Price/Child C$: @Html.TextBox(item.ActivityID+"-ChildPrice", item.PricePerChild)
<label style="color:Blue"><h3>Total Price C$:</h3></label>
<input type="text" id="@item.ActivityID-Sum" readonly="readonly"/>
</div>
</li>
}
</ul>
<input type="submit" id="submit" value="Submit" />
}
したがって、基本的に、特定のアイテムのチェックボックス(@ item.ActivityID-Check)をクリックして、フォームを送信すると、次のようになります。
ActivityItemは、リスト内のアクティビティから入力された次のフィールドで作成されます。
- リストアイテム
- ActivityID = @ item.ActivityID
- 名前=@item.Name
- 日付=@item.ActivityID-日付
- NumAdults = @ item.ActivityID-AdultNum
- NumChildren = @ item.ActivityID-ChildNum
- TotalPrice =@item.ActivityID-合計
ただし、複数のアイテムをクリックすることができ、フォームを送信するときに、ActivityItemのリストを返す必要があります。これは複雑な答えだと思います。その結果、完全な解決策は期待できません(それは素晴らしいことですが)。しかし、私がいくつかのヒントと指針を得ることができれば、それは大きな助けになるでしょう。私は本当にすべてのアドバイスに感謝します。