-1
这是我的项目发送的产品清单中MVC
public class RequestViewModel
{
public long FeederId { set; get; }
public int A { set; get; }
public int B { set; get; }
public int C { set; get; }
public int Remain { set; get; }
}
,这是我想从我的形式发送到我的控制器
public class RequestAddListViewModel
{
public List<SuppliantRequestFeederAddViewModel> SuppliantRequestFeederAddViewModels { set; get; }
public List<SelectListItem> FeederSelectListItems { set; get; }
public long NodeId { set; get; }
}
第一次我的窗体加载我我的新增模式有一个项目,我有一个button
当我是我的第一行克隆和append
到我的存在,例如单击现在我有我的形式8项,我可以在客户端删除的各个项目。如果我没有删除任何项目并提交表单没有问题。 我的问题是当删除一个项目,例如第二个删除时,然后提交我的表单没有我的控制器上的项目。没有发送给控制器。
查看
@for (int index = 0; index < Model.RequestAddListViewModel.Count; index++)
{
var req = Model.RequestAddListViewModel[index];
<tr class="requestrow">
<td>
@Html.DropDownListFor(p => p.req[index].FeederId, Model.FeederSelectListItems, new { @class = "form-control" })
</td>
<td>
@Html.TextBoxFor(p => p.req[index].A, new { @class = "form-control" })
</td>
<td>
@Html.TextBoxFor(p => p.req[index].B, new { @class = "form-control" })
</td>
<td>
@Html.TextBoxFor(p => p.req[index].C, new { @class = "form-control" })
</td>
<td>
<button type="button" class="btn btn-primary btn-icon btn-rounded newfeeder"><i class="icon-plus2"></i></button>
</td>
</tr>
}
和我的jQuery脚本(编辑):
var inputCount=0;
$(document).on('click', '.newfeeder', function() {
inputCount++;
var tr = $(this).closest("tr").clone();
tr.find("input").val(0);
tr.find("button").removeClass("btn-primary").addClass("btn-danger").removeClass("newfeeder").addClass("deleterow");
tr.find("button i").removeClass("icon-plus2").addClass("icon-trash");
tr.find("input,select").each(function() {
$(this).attr({
'name': function (_, name) { return name.toString().replace('0', inputCount) },
'id': function (_, id) { return id.toString().replace('0', inputCount) }
});
});
$(this).closest("tr").after(tr);
});
$(document).on('click', '.deleterow', function() {
$(this).closest("tr").remove();
});
您需要添加一个隐藏的输入为集合索引。请参阅[这个答案](http://stackoverflow.com/questions/28019793/submit-same-partial-view-called-multiple-times-data-to-controller/28081308#28081308)。既然你有一个下拉列表,那么使用'BeginCollectionItem()'方法。而且你要VAR TR = $(本).closest(“TR”)的clone();'的代码行不正确地工作,以便能够绑定到你的模型,当您提交 –
@StephenMuecke,请看看编辑的零件。 –
你看看链接,看看如何正确地做:) –