Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果缺少0索引,则控制器将忽略列表属性_C#_Asp.net Mvc_Mongodb - Fatal编程技术网

C# 如果缺少0索引,则控制器将忽略列表属性

C# 如果缺少0索引,则控制器将忽略列表属性,c#,asp.net-mvc,mongodb,C#,Asp.net Mvc,Mongodb,我正在c#.NETMVC中构建一个Web表单,使用mongodb存储信息。该表单使用的公司对象具有一个属性,即地址列表,称为addressdata。提交表单时,company对象被发送到控制器,然后上传到MongoDB中。输入名称采用以下形式: <input type="text" name="Company.addressdata[a].city" /> 其中“a”是列表中的索引。这一切都很好!地址对象列表在提交时创建,并插入mongoDB 然而,我刚刚添加了删除地址的功能,

我正在c#.NETMVC中构建一个Web表单,使用mongodb存储信息。该表单使用的公司对象具有一个属性,即地址列表,称为addressdata。提交表单时,company对象被发送到控制器,然后上传到MongoDB中。输入名称采用以下形式:

<input type="text" name="Company.addressdata[a].city" />

其中“a”是列表中的索引。这一切都很好!地址对象列表在提交时创建,并插入mongoDB

然而,我刚刚添加了删除地址的功能,现在我遇到了麻烦。我注意到,当用户删除第一行时,后面的所有行都会丢失。因此,如果他们删除0索引,公司对象将不会填充地址列表,因此他们不会进入MongoDB


有办法解决这个问题吗?它是这样设计的吗?用新的索引对以下所有行重新编号似乎太多了,但这就是需要的吗?还是有别的办法?

以我的经验,那是设计的。索引必须从0开始,或者必须使用特殊元素为每个索引定义自己的索引

本文给出了一个例子:


因此,您可以选择:

  • 删除时更新索引,或
  • 定义任意索引

  • 杰出的任意索引是一条出路。谢谢
    <form method="post" action="/Home/Create">
    
        <input type="hidden" name="products.Index" value="cold" />
        <input type="text" name="products[cold].Name" value="Beer" />
        <input type="text" name="products[cold].Price" value="7.32" />
    
        <input type="hidden" name="products.Index" value="123" />
        <input type="text" name="products[123].Name" value="Chips" />
        <input type="text" name="products[123].Price" value="2.23" />
    
        <input type="hidden" name="products.Index" value="caliente" />
        <input type="text" name="products[caliente].Name" value="Salsa" />
        <input type="text" name="products[caliente].Price" value="1.23" />
    
        <input type="submit" />
    </form>