簡體   English   中英

ASP.NET MVC刪除動態創建的視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM