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”

  • 相关阅读:
    centos git编译
    Unix/Linux小计
    centos gcc编译
    c++隐式转换(implicit conversion)
    通用c程序Makefile
    对弈的Python学习笔记
    LeetCode最长回文子串
    JDBC09 CLOB文本大对象
    JDBC08时间处理
    JDBC07 事务
  • 原文地址:https://www.cnblogs.com/webapi/p/9527963.html
Copyright © 2011-2022 走看看