我正在尝试使用asp.net mvc构建一个简单的todo-app。 我的应用有2个型号: 1列表(ToDoLijst.cs)
namespace OnsLijstje.Models
{
public class ToDoLijst
{
[Key]
public int LijstId { get; set; }
public string Titel { get; set; }
public virtual ICollection<LijstItem> LijstItems { get; set; }
}
}
和1表示列表中的项目(lijstItems.cs)。
namespace OnsLijstje.Models
{
public class LijstItem
{
[Key]
public int LijstItemId{ get; set;}
public int LijstId { get; set; }
public string Item { get; set; }
public virtual ToDoLijst TodoLijst { get; set; }
}
}
现在我有一个视图,其中列表与他们的项目一起显示,这很好。这是ToDoLijst视图的Index.cshtml。
<div class="container lijsten">
@foreach (var lijst in Model.Lijsten)
{
<div class="col-lg-5 lijst">
<div class="row">
<div class="col-lg-11">
<h3>
@Html.DisplayFor(modelItem => lijst.Titel)
</h3>
</div>
<div class="col-lg-1">
@using (Html.BeginForm("Delete", "ToDoLijsten", new { id = Html.DisplayFor(modelItem => lijst.LijstId) }))
{
@Html.AntiForgeryToken()
<div class="form-actions no-color pull-right">
<button type="Submit" value="Delete" class="btn btn-xs btn-default btn-close"><span class="glyphicon glyphicon-remove"></span></button>
</div>
}
</div>
</div>
@foreach (var item in Model.LijstItems)
{
if (item.LijstId == lijst.LijstId)
{<div class="row">
<div class="col-lg-11">
<p>@Html.DisplayFor(modelItem => item.Item)</p>
</div>
<div class="col-lg-1">
<a href="@Url.Action("Delete", "LijstItems", new { id = item.LijstItemId})"><span class="glyphicon glyphicon-remove"></span></a>
</div>
</div>
}
}
</div>
}
我可以删除整个列表。芽现在我希望能够从列表中逐个删除项目。我使用下面的代码执行此操作,它将我带到LijstItems视图的“删除”视图。 有没有办法可以直接删除项目
这是我使用的代码:
<a href="@Url.Action("Delete", "LijstItems", new { id = item.LijstItemId})"><span class="glyphicon glyphicon-remove"></span></a>
日Thnx
答案 0 :(得分:1)
我从你的问题中理解的是你想要删除记录而不进入删除页面:
这样做:
@foreach (var item in Model.LijstItems)
{
if (item.LijstId == lijst.LijstId)
{<div class="row">
<div class="col-lg-11">
<p>@Html.DisplayFor(modelItem => item.Item)</p>
</div>
<div class="col-lg-1">
<input type="button" value="Delete" id="deleteButton" data-id="@item.LijstItemId"/>
</div>
</div>
}
}
<script>
$("#deleteButton").click(function(e){
e.preventDefault();
var id=$(this).data("id");
$.post('@Url.Action("DeleteDirectly","YourController")',new {id:id},function(data){
if(data.status){
alert("Delete succeeded!");
}
else{
alert("Delete failed!");
}
});
});
</script>
控制器中的
public JsonResult DeleteDirectly(int id)
{
// you do the delete from database
// if deleted successfully from database then write the following code
return Json(new {status=true});
// if deletion was failed for any reason, then return the following code
return Json(new {status=false});
}
希望它会帮助你