zoukankan      html  css  js  c++  java
  • 【原创】Asp.net MVC学习笔记之基于用途来绑定Model的属性

    今天主要学习了如何基于程序用途,来自定义使用UpdateModel方法时,选取哪些页面上的字段来覆盖Model里的属性,下面是一个编辑页面的例子:

    可以看到所有的属性后面,都是1111结尾,下面在Controller获取参数的时候这么写:

    可以看到,我们指定了绑定3个属性,title,description,address,也就是说,页面上其他的字段全部无法绑定到Model里

    代码
    try
    {
    //UpdateModel(dinner);//使用Controler内置的方法,通过反射来给Dinner对象赋值
    UpdateModel(dinner,new string[]{"Title","Description","Address"});//使用属性列表,可以自定义允许绑定给Model的属性,从而更好的控制
    dinnerRepository.Save();
    return RedirectToAction("Details", new { id = dinner.DinnerID });
    }
    catch (Exception)
    {
    ModelState.AddRuleViolations(dinner.GetRuleViolations());

    return View(dinner);
    }

    在监视器里,查看实际绑定的数据

    看到了么,除了指定的3个属性以外,其他的属性还保持了原来的状态。

    这种方式还有一种写法,就是在Action的传入参数里指定:

    public ActionResult Create([Bind(Include="Title,Address")]Dinners dinner)

    页面上输入:

    后台绑定的结果:

    结论:使用该方法,我们可以更灵活的在后台控制哪些属性可以被绑定。

    PS:后面还将介绍基于类型的绑定规则。(使用该特性,请在程序中引用名称空间:using System.Web.Mvc;)


    本博客文章若非标记转载,均为原创,转载请注明出处~


  • 相关阅读:
    一个基于Angular+Ionic+Phonegap的混合APP实战
    Kafka
    kafka
    Kafka
    归并排序
    插入排序
    CC1310的晶振问题
    CC1310的RSSI值问题
    CC1310之使用SMARTRF STUDIO
    CC1310电源
  • 原文地址:https://www.cnblogs.com/wbpmrck/p/1933933.html
Copyright © 2011-2022 走看看