[英]ASP.NET MVC remove dynamically created views
我的ASP.NET MVC應用程序中有一個視圖模型,其中包含一個對象列表。 這些對象的每一個都使用EditorTemplate可視化。 使用下拉菜單,我可以在回發時將新對象動態添加到列表中。 問題是當我嘗試從列表中刪除特定元素時。
public class MyViewModel
{
public List<MyModel> Items { get; set; }
public MyViewModel()
{
this.Items = new List<MyModel>();
}
}
public class MyModel
{
public int Id { get; set; }
public string Text { get; set; } // I bind this to UI using EditorFor html helper
}
家庭控制器:
[HttpPost]
public ActionResult Index(MyViewModel myViewModel)
{
myViewModels.Items.Add(new MyModel()); // Simulate initializing the Id and Text properties
return View(myViewModel);
}
然后在Index.cshtml中:
if (Model.Items != null)
{
@Html.EditorFor(m => Model.Items); // EditorTemplate is used here...
}
因此,在名為Item.cshtml的模板文件中,我有:
@model MVCApp.Models.MyModel
<div>
@Html.HiddenFor(m => m.Id)
@Html.EditorFor(m => m.Text)
<span class="deleteItem" data-item-id="@Model.Id">Delete</span>
</div>
現在,當我單擊“刪除”時,我不知道如何處理特定項目的刪除。 我的目標是從控制器的集合中刪除該項目(視圖模型的“項目”列表屬性)。 我可以使用jQuery刪除div元素,但不會從'Items'集合中刪除該屬性,並且我想避免jQuery保留服務器端和客戶端之間的數據完整性。 我試圖在HomeController中調用另一個動作,稱為Remove(int?id),其中id參數是“ MyModel”的Id屬性,但是我需要在Remove動作中傳遞“ MyViewModel”對象才能訪問“項”列表,刪除元素,然后使用更改后的集合重定向到“索引”操作。 我該如何實現? 謝謝!
更新資料
如果您要使用它。 您可以使用“提交”按鈕提交表單,並傳遞ID以刪除,然后相應地調用控制器操作和代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.