搜索

查看: 3100|回复: 11

[ASP.NET] ASP.NET MVC增加一条记录同时添加N条集合属性所对应的个体

[复制链接]
发表于 2023-5-4 11:33:11 | 显示全部楼层 |阅读模式
Editor 2023-5-4 11:33:11 3100 11 看全部
类别中包含一个产品的集合属性,如何向数据库添加一条类别记录的同时,添加任意多个产品。
    public class Product
    {
        [DisplayName("产品名称")]
        public string Name { get; set; }
    }

    public class Category
    {
        [DisplayName("类别名称")]
        public string Name { get; set; }
        private IList _products = new List();

        public IList Products
        {
            get { return _products; }
            set { _products = value; }
        }
    }
思路
控制器方法能接收的格式为:
Category.Name
Category.Products[0].Name
Category.Products[1].Name
...
前台视图使用jquery动态生成input,并把input的name属性设置成Category.Products.Name格式。
Home/Index.cshtml视图
@model AddingMultipleNestedData.Models.Category

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@using (Html.BeginForm("Create", "Home", FormMethod.Post, new {id = "addForm"}))
{
   
        @Html.LabelFor(m => m.Name)
        @*@Html.EditorFor(m => m.Name)*@
        @Html.TextBox("Category.Name")
   
   
   
        
   
   
        
   
}

@section scripts
{
   
}
没有添加产品前:

202282384247351.png

202282384247351.png


添加产品集合:

202282384247352.png

202282384247352.png


HomeController
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Create(Category category)
        {
            return View();
        }
断点调试:      

202282384247353.png

202282384247353.png


更新
以上做法至少有二个弊端:
1、无法对新添加的集合属性对应的个体进行验证。
2、如果破坏集合元素的连续性,会影响控制器不能完全接收所有集合记录。
Category.Name
Category.Products[0].Name
Category.Products[3].Name  
Category.Products[6].Name  
控制器只能接收到集合中的第一条记录,即Category.Products[0].Name,也就是说,一旦集合元素不是连续的,控制器将不能接收到全部集合记录。
把noOfProducts++;改成noOfProducts = noOfProducts + 3;

202282384247354.png

202282384247354.png


断点调试:

202282384247355.png

202282384247355.png


只能接收到一条记录。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对知鸟论坛的支持。如果你想了解更多相关内容请查看下面相关链接
回复

使用道具 举报

发表于 2023-6-29 17:48:03 | 显示全部楼层
123456809 2023-6-29 17:48:03 看全部
感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
回复

使用道具 举报

发表于 2023-6-29 21:25:05 | 显示全部楼层
塞翁364 2023-6-29 21:25:05 看全部
这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
回复

使用道具 举报

发表于 2023-6-30 08:48:17 | 显示全部楼层
风吹吹蛋蛋疼风w 2023-6-30 08:48:17 看全部
这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
回复

使用道具 举报

发表于 2023-6-30 12:47:04 | 显示全部楼层
哈哈SE7 2023-6-30 12:47:04 看全部
这东西我收了!谢谢楼主!知鸟论坛真好!
回复

使用道具 举报

发表于 2023-6-30 18:38:40 | 显示全部楼层
老橡树1 2023-6-30 18:38:40 看全部
我看不错噢 谢谢楼主!知鸟论坛越来越好!
回复

使用道具 举报

发表于 2023-7-1 00:01:45 | 显示全部楼层
戏做顿 2023-7-1 00:01:45 看全部
楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
回复

使用道具 举报

发表于 2023-7-3 10:33:52 | 显示全部楼层
我是的十八簿 2023-7-3 10:33:52 看全部
论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
回复

使用道具 举报

发表于 2023-7-3 17:24:58 | 显示全部楼层
素色流年783 2023-7-3 17:24:58 看全部
感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
回复

使用道具 举报

发表于 2023-7-4 02:06:01 | 显示全部楼层
123456833 2023-7-4 02:06:01 看全部
这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
回复

使用道具 举报

  • 您可能感兴趣
点击右侧快捷回复 【请勿灌水】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

RSS订阅| SiteMap| 小黑屋| 知鸟论坛
联系邮箱E-mail:zniao@foxmail.com
快速回复 返回顶部 返回列表