编辑:看来我以错误的方式解决了这个问题。我将解释我需要发生的事情
这是我的模型:
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。