【发布时间】:2020-12-14 11:35:09
【问题描述】:
我有一个名为 DocumentDTO 的自定义对象列表,它是在页面加载时创建并填充值的。提交页面时,我需要提交列表中的值以在控制器 post 方法中使用。
有没有办法为带有自定义对象的列表项做到这一点?当它是一个字符串列表时,我能够做到这一点,但是当它的自定义对象时它不起作用
对于其他领域我这样做:
< input asp-for="FileID" type="hidden" />
对于字符串列表,我这样做:
@for (int i = 0; i < Model.StringList.Count(); i++)
{
<input asp-for="StringList[i]" type="text">
}
但我有这个模型:
public class FileModel
{
public string Email { get; set; }
public string FileNumber { get; set; }
public List<DocumentDTO> DocumentListing { get; set; }
public class DocumentDTO
{
public string DocName { get; set; }
public string Comments { get; set; }
public int docID { get; set; }
}
}
但是下面的两种尝试都不允许我在提交时看到控制器的 Post 方法中的列表项(列表说它的计数为 0)
int DocumentsCount = Model.DocumentListing.Count();
for (int i = 0; i < DocumentsCount; i++)
{
<input asp-for="DocumentListing[i].DocName" type="hidden">
<input asp-for="DocumentListing[i].docID" type="hidden">
<input asp-for="DocumentListing[i].Comments" type="hidden">
}
这可能吗?如果可能的话,有人可以帮忙吗?
【问题讨论】:
-
您好@user9758771,请务必删除剃刀视图中的无效输入。也就是说,删除
<input asp-for"DocumentListing" type="hidden">和<input asp-for="DocumentListing[i]" type="hidden">。然后您可以成功将数据发布到后端。
标签: c# asp.net-core-mvc