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

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

  1.      [HttpPost]
  2. [ValidateAntiForgeryToken]
  3. public ActionResult Edit(admin model)
  4. {
  5. if (ModelState.IsValid)
  6. {
  7. adminBLL bll = new adminBLL();
  8. bll.Update(model);
  9. return RedirectToAction("Index");
  10. }
  11. return View(model);
  12. }

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

  1.      [HttpPost]
  2. [ValidateAntiForgeryToken]
  3. public ActionResult Edit(admin vmodel)
  4. {
  5. if (ModelState.IsValid)
  6. {
  7. adminBLL bll = new adminBLL();
  8. admin model = bll.Find(vmodel.ID);
  9. model.name = vmodel.name;
  10. model.password = vmodel.password;
  11. bll.Update(model);
  12. return RedirectToAction("Index");
  13. }
  14. return View(vmodel);
  15. }

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

写法3:TryUpdateModel

  1.      [HttpPost]
  2. [ValidateAntiForgeryToken]
  3. public ActionResult Edit(int id, FormCollection FromValue)
  4. {
  5. adminBLL bll = new adminBLL();
  6. admin model = bll.Find(id);
  7. if (TryUpdateModel(model, FromValue.AllKeys) && ModelState.IsValid)
  8. {
  9. bll.Update(model);
  10. return RedirectToAction("Index");
  11. }
  12. return View();
  13. }

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

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

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

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

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

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

Asp.Net MVC TryUpdateModel使用说明的更多相关文章

  1. ASP.NET MVC @helper使用说明

    简单的 @helper 方法应用场景 Razor中的@helper语法让您能够轻松创建可重用的方法,此方法可以在您的视图模板中封装输出功能.他们使代码能更好地重用,也使代码更具有可读性. 在我们定义@ ...

  2. ASP.NET MVC NonActionAttribute使用说明

    默认情况下,MVC 框架将 controller 类的所有公共方法都视为操作方法. 如果您的 controller 类包含公共方法,并且您不希望它成为操作方法,则必须用 NonActionAttrib ...

  3. ASP.NET MVC TryUpdateModel 更新model

    总结参考:原文地址http://www.it165.net/pro/html/201305/5724.html TryUpdateModel (model)默认将view页面上form表单中的字段与m ...

  4. Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1

    这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Fram ...

  5. Asp.Net MVC 模型(使用Entity Framework创建模型类)

    这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Fram ...

  6. 转:ASP.NET MVC利用TryUpdateModel来做资料更新 (二)

    前言 第一篇說明了 TryUpdateModel 的簡單的應用,除了可指定更新的欄位之外也可排除更新特定的欄位,而因為可搭配 Metadata 做欄位驗證為資料又做了一層把關,但在 ASP.NET M ...

  7. 转:ASP.NET MVC利用TryUpdateModel来做资料更新 (一)

    前言有使用 ASP.NET MVC 的朋友们一定多多少少有听过 TryUpdateModel,之前就看了很多有关它的文章,但在专案实务上都未曾实际使用过,而 TryUpdateModel 不仅能利用 ...

  8. ASP.NET MVC 使用TryUpdateModel 更新的技巧

    有使用 ASP.NET MVC 的朋友應該會對於 TryUpdateModel 有一定的認知,他不但可以利用 Metadata 來做欄位的驗證確保資料的正確性,也可以指定更新的條件以及不更新的條件來達 ...

  9. ASP.NET MVC系列:Model

    1. Model任务 Model负责通过数据库.AD(Active Directory).Web Service及其他方式获取数据,以及将用户输入的数据保存到数据库.AD.Web Service等中. ...

随机推荐

  1. Ubuntu登录Windows Server 2008r2 密码总是错误与NLA验证

    日期:2013-05-22   经过一天的折腾,终于能够用Ubuntu登录Windows server 2008 R2 了. 寝室里面用小本子,装的ubuntu,实验室的服务器是win server0 ...

  2. warning C4005 DXGI_STATUS_OCCLUDED

    注意包含顺序 要将 $(DXSDK_DIR)Include放在后面才行 $(VC_IncludePath)$(WindowsSDK_IncludePath)$(DXSDK_DIR)Include 为了 ...

  3. numpy二分查找

    a = np.array([1, 2, 2, 3]) print(np.searchsorted(a, 0)) # 0 print(np.searchsorted(a, 1)) # 0 print(n ...

  4. APP缓存数据线程安全问题

    问题 一般一个 iOS APP 做的事就是:请求数据->保存数据->展示数据,一般用 Sqlite 作为持久存储层,保存从网络拉取的数据,下次读取可以直接从 Sqlite DB 读取.我们 ...

  5. C语言lseek()函数:移动文件的读写位置

    相关函数:dup, open, fseek 头文件:#include <sys/types.h>    #include <unistd.h> 定义函数:off_t lseek ...

  6. 【SqlServer】聚集索引与主键、非聚集索引

    目录结构: contents structure [-] 聚集索引和非聚集索引的区别 聚集索引和主键的区别 主键和(非)聚集索引的常规操作 聚集索引.非聚集索引在SqlServer.MySQL.Ora ...

  7. SharePoint 2013 Step by Step—— 为终端用户提供故障恢复的解决方案 Part I

    Disaster Recovery,我把他直译"故障恢复",或者也可以翻译成 "灾难复原 ".光字面意思就可以领会到,当SharePoint Server发生了 ...

  8. SharePoint 2013 Step by Step——How to Create a Lookup Column to Another Site(Cross Site)

    OverView In this post,I want to show u how to add a look up column in my list or library that looks ...

  9. FreeSWITCH媒体转码配置

    一.说明: FreeSWITCH版本1.6.13二.测试准备 软电话A的语音编码只配置iLBC:软电话B的语音编码只配置PCMU: A->B,编码协商失败,收到488消息. 三.修改文件vars ...

  10. ElasticSearch 数据增删改实现

    前言 本文介绍 ElasticSearch 增加.删除.修改数据的使用示例.通过Restful 接口和 Python 实现.ES最新版本中有Delete By Query 和 Update By Qu ...