自定义模型绑定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class GC_ModelBindcs : IModelBinder
    {
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            List<Model> model = (List<Model>)bindingContext.Model ?? new List<Model>();
            // string str = bindingContext.ValueProvider.GetValue("arrMachine[0][status]").AttemptedValue;
            int count = 0;
            if (controllerContext.HttpContext.Request.Form.AllKeys.Length > 0)
            {
                count = (controllerContext.HttpContext.Request.Form.AllKeys.Length - 1) / 2;
            }
            for (int i = 0; i < count; i++)
            {
                Model m = new Model();
                string id_key = bindingContext.ModelName + "[" + i + "]" + "[id]";
                string status_key = bindingContext.ModelName + "[" + i + "]" + "[status]";
                m.id = int.Parse(bindingContext.ValueProvider.GetValue(id_key).AttemptedValue);
                m.status = bool.Parse(bindingContext.ValueProvider.GetValue(status_key).AttemptedValue);
                model.Add(m);
            }
            return model;
        }
    }
 
MVC后台:
 
 public ActionResult Index_Post(int groupId, [ModelBinder(typeof(GC_ModelBindcs))]List<Model> arrMachine)
        {
             
            return View();
        }

 

posted @   小小高  阅读(265)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2015-06-01 jquery中判断选择器,找没找到元素用$().size()==0
点击右上角即可分享
微信分享提示