編集:この問題に間違った方法でアプローチしたようです。私は何が起こる必要があるかを説明します
これが私のモデルです:
public class Items
{
public string ItemName { get; set; }
public string Type { get; set; }
public bool Picked { get; set; }
}
これは私のコントローラーです:
public class InvoiceController : Controller
{
[HttpGet]
public ActionResult Index()
{
using (TPGEntities context = new TPGEntities())
{
List<Items> result = (from a in context.IV00101
select new Items { ItemName = a.ITEMDESC, Type = a.ITEMNMBR, Picked = false }).Take(10).ToList();
return View(result);
}
}
[HttpPost]
public ActionResult Index(string searchTerm, IList<Items> model)
{
return View();
}
}
そして私の見解:
@model IList<SampleEnterprise.Models.Items>
@{
ViewBag.Title = "Repair Invoicing";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Repair Invoicing</h2>
@using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = "partsList" }))
{
<input type="search" name="searchTerm" />
<input type="submit" value="OK" />
<div id="partsList">
@foreach (var item in Model)
{
<h1>@item.ItemName</h1>
<div>@item.Type</div>
<div>
@if (@item.Picked)
{
<img src="~/Images/checkbox.png" />
}
</div>
}
</div>
}
基本的にここに私が起こる必要があるものがあります:
ユーザーがページに移動します。現在表示されていないテキストボックスに、ユーザーは数字を入力します。その番号は、エンティティ フレームワークからデータを検索して返すために使用されます。このデータのリストは、何らかの方法で一時的に保存する必要があります。
razor で for each ループを使用して一時データを表示します。
検索テキストボックスで、ユーザーは項目番号の一時データを検索します。
項目番号が一時データに存在する場合は、picked を true に設定します。
選択したすべてのプロパティが true に設定されるまで繰り返します。