zoukankan      html  css  js  c++  java
  • asp.net mvc 自定义模型绑定

    在asp.net mvc的控制器中如果能够活用模型的自动绑定功能的话能够减少许多工作量。但是如果我们想要对前台传来的数据进行一些处理再绑定到模型上,该怎么做呢?

    这里用一个绑定用户数据的小案例来讲解asp.net的自定义模型绑定。

    新建用户模型:

        public class User
        {
            public string name { set; get; }
            public int age { set; get; }
            public DateTime day { set; get; }
        }

    新建UserCustomBinder类,继承自DefaultModelBinder类(来自system.web.mvc)

        public class UserCustomBinder : DefaultModelBinder
        {
            public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
            {
                if (bindingContext.ModelType == typeof(User))
                {
                    var request = controllerContext.HttpContext.Request;
    
                    string name = request.Form.Get("name")+"testtest";
                    int age = int.Parse(request.Form.Get("age"));
                    DateTime day = Convert.ToDateTime(request.Form.Get("date"));
    
                    return new User
                    {
                        name = name,
                        age = age,
                        day = day
                    };
                }
                else
                {
                    return base.BindModel(controllerContext, bindingContext);
                }
    
            }
        }

    然后再Global.asax.cs中添加UserCustomBinder类。

    ModelBinders.Binders.Add(UserCustomBinder);

    控制器:

            public ActionResult CustModelView()
            {
                return View();
            }
            public ActionResult CustModel(User user)
            {
    
                return Content("123");  //在这里下断点
            }

    视图:

    @model dynamic
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <title>title</title>
    </head>
    <body>
    <div>
        <form method="post" action="/home/CustModel">
            <input type="text" name="name" value="" />
            <input type="number" name="age" value="" />
            <input type="date" name="day"/>
            <input type="submit" value="submit"/>
        </form>
    </div>
    </body>
    </html>

    填写并提交视图上的表单后可以发现User类已经实现了自定义绑定。

  • 相关阅读:
    建议博客园搭个威客平台,可行的发展方向和盈利方向
    SQLServer DBA 三十问(第11~20题)
    sqlserver2000中nvarchar保存韩文乱码问题解决
    beginning Linux programming读书笔记(2)之shell编程
    IBM打狗问题
    Perl入门笔记2之第二章 标量数据
    linux面试大全
    结构体对齐详解
    Linux下静态链接库与动态链接库的区别
    Perl入门 笔记1之第一章简介
  • 原文地址:https://www.cnblogs.com/axel10/p/8630439.html
Copyright © 2011-2022 走看看