Asp.net mvc 4 使用MVC创建多个ID和名称,这些ID和名称具有相同的名称,但名称末尾的数字递增

Asp.net mvc 4 使用MVC创建多个ID和名称,这些ID和名称具有相同的名称,但名称末尾的数字递增,asp.net-mvc-4,Asp.net Mvc 4,我想从一个表单创建多个实体,其中的参数具有相同的名称。我正在尝试创建一个数组,从1开始,以数组中的最大项数结束。实体框架默认情况下是否执行此操作 例如: PersonName(1): "Bob" PersonName(2): "John" PersonName(3): "Mindy" 若我使用实体框架遍历集合,那个么对于名称和id属性是否有首选方法 Html: 或者是否有首选技术?您可以使用for循环遍历集合。将[索引]追加到personname。 例如: for(int i = 0; i &

我想从一个表单创建多个实体,其中的参数具有相同的名称。我正在尝试创建一个数组,从1开始,以数组中的最大项数结束。实体框架默认情况下是否执行此操作

例如:

PersonName(1): "Bob"
PersonName(2): "John"
PersonName(3): "Mindy"
若我使用实体框架遍历集合,那个么对于名称和id属性是否有首选方法

Html:


或者是否有首选技术?

您可以使用for循环遍历集合。将[索引]追加到personname。 例如:

for(int i = 0; i < personName.Length; i++)
{
    <input name="personName[" + i + "]" id="personName_" + i value=personName[i] />
}
@for(int i=0, i<collection.Count; i++)
{
    Html.TextBoxFor(m => m.collection[i].Name);
    <input type="submit"/>
}
for(int i=0;i

请注意,ID值不能包含括号、大括号或类似内容,这就是为什么需要使用下划线加索引值。

可以使用for循环遍历集合。将[索引]追加到personname。 例如:

for(int i = 0; i < personName.Length; i++)
{
    <input name="personName[" + i + "]" id="personName_" + i value=personName[i] />
}
@for(int i=0, i<collection.Count; i++)
{
    Html.TextBoxFor(m => m.collection[i].Name);
    <input type="submit"/>
}
for(int i=0;i

请注意,ID值不能包含括号、大括号或类似内容,这就是为什么需要使用下划线加索引值之类的内容。

如果使用Html帮助程序,它会自动为您执行此操作,尤其是在使用EditorTemplates时。例如:

for(int i = 0; i < personName.Length; i++)
{
    <input name="personName[" + i + "]" id="personName_" + i value=personName[i] />
}
@for(int i=0, i<collection.Count; i++)
{
    Html.TextBoxFor(m => m.collection[i].Name);
    <input type="submit"/>
}

如果您使用Html帮助程序,它会自动为您执行此操作,特别是如果您使用EditorTemplates。例如:

for(int i = 0; i < personName.Length; i++)
{
    <input name="personName[" + i + "]" id="personName_" + i value=personName[i] />
}
@for(int i=0, i<collection.Count; i++)
{
    Html.TextBoxFor(m => m.collection[i].Name);
    <input type="submit"/>
}

正确的答案是必须添加父表作为模型。在对任何子字段或子表字段的每次引用中,必须首先引用此父模型。所有子模型都必须深入到EditorFor的HiddenFor、TextBoxFor等中。。。首先调用父模型。如果没有父级,当执行保存更改或编辑时需要检查正确的引用时,它将不知道如何正确地与之关联。必须列出父ID和子ID,以便将所有表合并到一个表单中,然后对字段执行保存更改。否则它将不包括这些字段,或者它将无法正确保存该表,并且无法自动生成。。。是的,我说的是“自动生成”ID。如果您尝试自己自动生成ID,那么维护将成为一场噩梦

那里。。。我填写了一个noob要超越点所需的所有信息

那么为什么这很重要呢?因为如果@Model没有指向与所有其他对象相关的最顶层对象,那么它就不知道引用是如何关联的。例如,文档表。但是文档表可能有标题表的外键。那将是一对一。文档表仍然需要像Document.Title.TitleName一样首先列出。在一个一对多的人中,就像在一个作家中。。。b/c可能有多个作者。。您仍然会首先列出文档。如文件中所示。作者。。。作者将是一个集合,因此您可以循环浏览每个作者。但是在最顶端,即使是在部分中,您仍然只会引用@modelDocument而不是作者,这将在内容区域中的@Model部分之后。如果您尝试引用@model author部分。现在它不了解它与文档的关系,您或者必须在添加作者之后的下游某个点,在author表的documentid外键中添加文档标识符。这是不幸的,因为如果您只是从文档开始,就没有必要这样做

当然,这可能会变得更复杂一点b/c您可以每个作者有多个文档,所以这里最好是一个指向documentauthors表的链接表。。。但仍然文档表仍然会列在部分视图甚至主视图的顶部,以便在html页面中完全放置正确的标识符和名称,以便在提交表单时正确地知道所有内容的关系。此外,如果不向用户显示隐藏的输入字段,则应将标识符放置在html帮助程序中

现在要使其增加次数并从某个分组开始。。。它需要一个查询字符串或POST属性来发送该组或作者列表、书籍列表、文档或其他内容的开始和停止范围。由于一对多和多对多关系应在for循环中输出,因此它可以选择要检索的正确关系,还可以选择使用linq为实体框架显示的关系,该实体框架在私有成员变量中提供,允许您执行数据库crud ops


就这点而言,农民们。。。什么都没有。

正确的答案是您必须添加父表作为模型。在对任何子字段或子表字段的每次引用中,必须首先引用此父模型。所有子模型都必须深入到EditorFor的HiddenFor、TextBoxFor等中。。。首先调用父模型。如果没有父级,当执行保存更改或编辑时需要检查正确的引用时,它将不知道如何正确地与之关联。必须列出父ID和子ID,以便将所有表合并到一个表单中,然后对字段执行保存更改。否则它将不包括这些字段,或者它将无法正确保存该表,并且无法自动生成。。。是的,我说的是“自动生成”ID。如果您尝试自己自动生成ID,那么维护将成为一场噩梦

那里。。。我填写了一个noob要超越点所需的所有信息

那么为什么这很重要呢?因为如果@Model没有指向与所有其他对象相关的最顶层对象,那么它就不知道引用是如何关联的。例如,文档表。但是文档表可能有标题表的外键。那将是一对一。文档表将