zoukankan      html  css  js  c++  java
  • Asp.Net MVC TryUpdateModel使用说明

    修改功能每个网站里都有,也有很多写法

    写法1:要修改的字段刚好等于表中的字段

         [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Edit(admin model)
            {
                if (ModelState.IsValid)
                {
                    adminBLL bll = new adminBLL();
                    bll.Update(model);
                    return RedirectToAction("Index");
                }
                return View(model);
            }

    写法2:只修改部分字段(表中有十几个字段)

         [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Edit(admin vmodel)
            {
                if (ModelState.IsValid)
                {
                    adminBLL bll = new adminBLL();
                    admin model = bll.Find(vmodel.ID);
                    model.name = vmodel.name;
                    model.password = vmodel.password;
                    bll.Update(model);
                    return RedirectToAction("Index");
                }
                return View(vmodel);
            }

    //如果要修改的字段多是话这些就很麻烦

    写法3:TryUpdateModel

         [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Edit(int id, FormCollection FromValue)
            {
                adminBLL bll = new adminBLL();
                admin model = bll.Find(id);
                if (TryUpdateModel(model, FromValue.AllKeys) && ModelState.IsValid)
                {
                    bll.Update(model);
                    return RedirectToAction("Index");
                }
                return View();
            }

    TryUpdateModel (model)默认将view页面上form表单中的字段与model字段匹配,如果相同则把表单中的值更新到model上

    利用 FormCollection 来接收 View 传来的资料来做字段更新,所以可以改成以下写法:

    TryUpdateModel(model, FromValue.AllKeys) && ModelState.IsValid

    还可以排除 FormCollection 来接收 View 传来的资料的某些字段

    TryUpdateModel(model, "", FromValue.AllKeys, new string[] { "字段1" })

    这样就可以排除“字段1”

  • 相关阅读:
    python并发编程之多进程
    python并发编程之多进程理论部分
    Python GIL(Global Interpreter Lock)
    python并发编程之多线程
    前端基础之CSS
    前端知识之HTML内容
    Python杂货铺-(1)os模块在python中执行shell命令
    Hive学习小记-(17)inline(array(struct))与explode
    Hive学习小记-(16)hive加载解析json文件
    Hive学习小记-(15)transform函数
  • 原文地址:https://www.cnblogs.com/webapi/p/9527963.html
Copyright © 2011-2022 走看看