我有一個EditorTemplate的小項目。 我顯示了一些最初在List<T>
中的項目,但我希望能夠在用戶按下按鈕時添加項目 。ASP.Net MVC添加動態EditorFor元素
通常我添加的項目,以查看這樣
@for (int i = 0; i < Model.Models.Count; i++)
{
@Html.EditorFor(model => model.Models[i], "_AddArticleFullQuantity");
}
當我想要添加項目動態我試圖 創建一個使用AJAX調用服務器
<button id="addButton" type="button" class="btn btn-default btn-block" onclick="m_GUIRequests.AddArtikelToDiv()">add Article</button>
GUIRequests.prototype.AddArtikelToDiv = function()
{
this.Request.CallAjax("/NewItemDelivery/GetPartialView_AddArticleFullQuantity", "", GUIRequests.AddToView);
}
GUIRequests.AddToView = function (html) {
$("#addedItems").append(html);
}
的一個按鈕按鈕打一個阿賈克斯電話給我的控制器,它將執行以下操作:
public ActionResult GetPartialView_AddArticleFullQuantity()
{
WrongItemsReceivedModel model = new WrongItemsReceivedModel();
ModelContainer<WrongItemsReceivedModel> container = (ModelContainer<WrongItemsReceivedModel>)TempData["ModelContainer"];
container.Add(model);
return PartialView("~/views/Shared/EditorTemplates/_AddArticleFullQuantity.cshtml", container.Models[0]);
}
而在最後,我得到了我預期它會告訴我,我的模板,但最初從列表中顯示的項目編號
所以通常我有相同的元素:
<input class="form-control col-md-6 text-box single-line" data-val="true" data-val-required="MESSAGE" id="Models_0__ModelNumberID" name="Models[0].ModelNumberID" onchange="m_GUIRequests.SetWrongItemsReceivedValues()" type="text" value="">
但我得到這個:
<input class="form-control col-md-6 text-box single-line" data-val="true" data-val-required="MESSAGE" id="ModelNumberID" name="ModelNumberID" onchange="m_GUIRequests.SetWrongItemsReceivedValues()" type="text" value="">
我認爲它是因爲我用EditorFor「command」添加了一個,但另一個添加爲PartialView。 有什麼辦法可以添加一個EditorFor元素,以便我的邏輯不會中斷?
這篇文章很好,但沒有源代碼,我無法使用Html.BeginCollectionItem() – Bongo
嘗試在開始處下載「演示項目」鏈接。它應該包括你需要的一切。 –
是的,我想到了;)但我收到所有的查殺錯誤404 – Bongo