我已經閱讀了一堆文章,從Phil Haacks的「模型綁定到列表」到Steve Sanderson的「編輯可變長度列表」,現在試圖解決我的問題 - 但是我couln真的沒有工作。動態添加模型行到表
我有兩個模型 - 訂單和文章。訂單有很多文章。訂單視圖包含一個文章表。
目前,我在我的Order View Model中使用EditorFor(model => model.Articles)創建第一個表格行。
它認識到Articles是一個列表並返回正確的列表項。到現在爲止還挺好。
現在我想要一個鏈接,將一篇文章添加到表格行,但通過使用AJAX請求到控制器,然後返回一個局部視圖(只包含文章表格行)。我已經得到了使用這個教程的工作:http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/
但是,我的問題是,我不知道如何我可以繼續在ASP.NET MVC「風格」的文章行序列,以便它會得到承認提交。 (例如文章[1] .Number Articles [2] .Number等)
這是我的代碼。 「添加文章」鏈接應該添加的文章,發送一個Ajax請求/命令/ BlankArticleRow
public ActionResult BlankArticleRow(int pos)
{
Article article = new Article()
{
Position = pos
};
return View(article);
}
爲BlankArticleRow局部視圖看起來是這樣的:
@model Bestellinterface.Models.Article
@{
Layout = null;
}
@Html.EditorFor(model => model)
工作正常。當我點擊「添加文章」鏈接的行被添加,但是文本字段等的屬性沒有正確的格式。我想要的是,它繼續編號的HTML元素,文章[0] .Number,文章[1] .Number,文章[2] .Number ...
這是可能的EditorFor?有沒有辦法模擬一個列表,以便它將繼續編號?
您好本,我在那裏應該將該代碼放在頂部?我只是問,因爲我的OrderViewModel已經包含這樣的代碼來呈現文章,它的工作正常 - 我的問題是部分視圖,它應該只呈現該錶行。我真正想要的是EditorFor的參數,它強制EditorFor以「列表樣式」呈現輸入,但AFAIK不可能,所以我可能會堅持使用javascript解決方案。 – user1320304