我的dbml中有一个名为Product的表。
在我的控制器中,我有以下LINQ ...
public ActionResult Index(int id)
{
using (orbitDataContext = new OrbitDataContext())
{
var products = (from p in orbitDataContext.Products
where p.EventId == id
select p).ToList();
return View(products);
}
}
在我的视图中,我有以下内容......
@model IList<MVC.Product>
@{
ViewBag.Title = "Products";
}
<h2>Products</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<p>
<input type="submit" value="Delete Selected" />
</p>
@foreach (var item in Model)
{
<ul>
<li>@item.Description | @item.ProductCode | @item.Price</li>
</ul>
}
请有人解释我如何显示每个显示的产品的复选框,以便用户可以检查多个产品,然后单击一个按钮,将所选产品发送回我的控制器,以便我删除它们。
答案 0 :(得分:1)
在得到可能的答案之前,只需要几个指示。
不要将您的域模型返回到视图,而是使用视图模型。
public class YourViewModel
{
public List<Product> Products { get; set; }
}
将数据检索与控制器分开,如下所示:
public ActionResult YourActionMethod()
{
YourViewModel viewModel = new YourViewModel
{
Products = productService.FindAll()
}
return View(viewModel);
}
在您看来,可以尝试这样的事情:
<ul>
@for (int i = 0; i < Model.Products.Count(); i++)
{
<li>
@Html.CheckBoxFor(x => x.Products[i].IsSelected)
@Html.DisplayFor(x => x.Products[i].Description) @Html.HiddenFor(x => x.Products[i].Description)
@Html.DisplayFor(x => x.Products[i].ProductCode) @Html.HiddenFor(x => x.Products[i].ProductCode)
@Html.DisplayFor(x => x.Products[i].Price) @Html.HiddenFor(x => x.Products[i].Price)
</li>
}
</ul>
这可能不完美,但它可以帮助你。希望它有所帮助。