使用复选框,并停留在将选定的复选框传输到后端的过程中。我有一个想法,但我想听听另一个变种。所以我有一个带有复选框的表:
<td>
<input type="checkbox" class="check" value="@item.Id"/>
</td>
并提交按钮
@Html.ActionLink("delete", "DeleteSelectedPictures")
因此,我的变体是添加bool属性并将表从更改input
为@html.checkboxfor(_ => _.selected)
,然后如何获取这些选定的项?还有其他方法可以解决这个问题吗?
//控制器逻辑
public ActionResult DeleteSelectedPictures(int itemsId)
{
var pictures = from items in _Db.Pictures
where items.Id == itemsId
select items;
foreach (var picture in pictures)
{
_Db.Pictures.Remove(picture);
}
return RedirectToAction("Index");
}
更新2。
由于Ali sultani的建议,这里是更新,但是有问题,从这里开始为nullvar selected = Request.Form["chkPicture"];
cshtml:
<div>
@using (Html.BeginForm())
{
<table id="images">
<tbody>
@foreach (var item in Model.Pictures.Where(o => o.PartnerId == Model.PartnerId && !o.IsDeleted))
{
<tr>
<td>
<input name="chkPicture" type="checkbox" class="check" value="@item.Id"/>
</td>
<td>
<img src="@(Model.BaseUrl)GetPreview.ashx?h=200&[email protected]&w=200"/>
</td>
</tr>
}
</tbody>
</table>
<div id="container">
@Html.ActionLink(R("Remove"), "DeleteSelectedPictures")
</div>
}
</div>
和CS控制器:
public ActionResult DeleteSelectedPictures()
{
var selected = Request.Form["chkPicture"];
var selectedList = selected.Split(',');
foreach (var temp in selectedList)
{
var strTemp = Convert.ToInt32(temp);
var deletePicture = _Db.Pictures.FirstOrDefault(p => p.Id == strTemp);
_Db.Pictures.Remove(deletePicture);
_Db.SaveChanges();
}
return RedirectToAction("Index");
}
已通过ajax.begin表单解决此问题
@using (Ajax.BeginForm("DeleteSelectedDecorPictures", new AjaxOptions() { UpdateTargetId = "updateId" }))
{
<div>
<div id="updateId"></div>
<table id="images">
<tbody>
@foreach (var item in Model.Pictures.Where(o => o.PartnerId == Model.PartnerId && !o.IsDeleted))
{
<tr>
<td>
<input name="chkPicture" type="checkbox" class="check" value="@item.Id" />
</td>
<td>
<img src="@(Model.BaseUrl)GetPreview.ashx?h=200&[email protected]&w=200" />
</td>
</tr>
}
</tbody>
</table>
<div id="container">
<div id="filelist"></div>
<h1>
<input id="delSelected" type="submit" value="Remove Selected" />
</h1>
</div>
</div>
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句