我已经阅读了一堆文章,从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