日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

ASP.NET MVC 2 学习笔记二: 表单的灵活提交

發(fā)布時(shí)間:2025/3/15 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET MVC 2 学习笔记二: 表单的灵活提交 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

?

?

?

ASP.NET MVC 2 學(xué)習(xí)筆記二:? 表單的靈活提交

?

?

  前面說(shuō)到有做到公司內(nèi)部的一個(gè)請(qǐng)假系統(tǒng),用的是ASP.NET MVC 2+Entity Framework。雖然EF(Entity Framework簡(jiǎn)稱(chēng),以下簡(jiǎn)稱(chēng)EF,恕不贅述)簡(jiǎn)單方便,提供了幾乎大半的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的方法。但是,仍然有些瑕疵,所以不得不綜合linq方法,以期達(dá)到完美。

  表單提交問(wèn)題,EF提供了TryUpdateModel和UpdateModel兩種方法來(lái)更新數(shù)據(jù)表,例如,我要更新請(qǐng)假的信息時(shí),可以這樣寫(xiě):

1      [HttpPost]
2 public ActionResult EditLeaving(FormCollection form)
3 {
4 var infoid = Int32.Parse(form["infoid"]);
5 var leavingInfoToUpdate = _Staffdb.LeavingInformation.First(m => m.InfoId == infoid);
6
7 // Deserialize (Include white list!)
8 TryUpdateModel(leavingInfoToUpdate, new string[] { "StartTime", "EndTime", "Details" }, form.ToValueProvider());
9
10
11 if (String.IsNullOrEmpty(leavingInfoToUpdate.StartTime.ToString()))
12 ModelState.AddModelError("StartTime", "StartTime is required!");
13 if (String.IsNullOrEmpty(leavingInfoToUpdate.EndTime.ToString()))
14 ModelState.AddModelError("EndTime", "EndTime is required!");
15
16
17 if (ModelState.IsValid && leavingInfoToUpdate.Details.ToString() != "")
18 {
19 _Staffdb.SaveChanges();
20 return RedirectToAction("RequestLeave");
21 }
22
23 // Otherwise, reshow form
24 return View(leavingInfoToUpdate);
25 }

  可以看出TryUpdateModel方法第一個(gè)參數(shù)是要更新的數(shù)據(jù)行l(wèi)eavingInfoToUpdate,第二個(gè)參數(shù)列了一份白名單,其中包括了要更新的字段名StartTime、EndTime和Details,第三個(gè)參數(shù)傳進(jìn)數(shù)據(jù)的提供源信息,這里使用表單提交form.ToValueProvider()。

  如果采用這種更新方式,很明顯不夠靈活,當(dāng)然TryUpdateModel還有第四個(gè)參數(shù),列出一份黑名單,即使不更新的字段。但是如果所列出的某些字段,不是由表單提供的,例如RequestTime字段,是由表單提交時(shí)的當(dāng)前時(shí)間提供,怎們辦呢?

  

  在網(wǎng)上找了很久,終于找到一種方法,應(yīng)該來(lái)說(shuō)是在ASP.NET MVC 1.0中提供,就能夠比較靈活的解決當(dāng)前表單提交的問(wèn)題。下面,我就在管理員身份時(shí),對(duì)添加員工的表單提交,舉例如下,下面是Controllers層的代碼:

1     /// <summary>
2     /// 添加員工信息
3     /// </summary>
4     /// <returns></returns>
5 public ActionResult AddStaff()
6 {
7 var alicename = Environment.UserName;
8 var personInfo = _Staffdb.StaffList.First(m => m.AliceName == alicename);
9
10 var id = personInfo.Id;
11 ViewData["StaffId"] = id;
12
13 List<StaffIdentity> identity = _Staffdb.StaffIdentity.ToList();
14 ViewData["Identity"] = new SelectList(identity,"IdentityId","IdentityName");
15
16 return View();
17 }
18
19 [HttpPost]
20 public ActionResult AddStaff(FormCollection form)
21 {
22 StaffList stafflist = new StaffList();
23 stafflist.AliceName = form["AliceName"];
24 stafflist.EnName = form["EnName"];
25 stafflist.CnName=form["CnName"];
26
27 int identityid = Convert.ToInt32(form["IdentityName"].ToString());
28 stafflist.IdentityId = identityid;
29
30 _Staffdb.AddToStaffList(stafflist);
31 _Staffdb.SaveChanges();
32
33 return RedirectToAction("ShowStaffInfo");
34 }

  上面的alicename是由Environment.UserName來(lái)獲取的當(dāng)前系統(tǒng)用戶(hù)的用戶(hù)名。在表單提交的Action方法AddStaff中,首先new一個(gè)StaffList表的同名實(shí)體模型類(lèi)stafflist,然后依次通過(guò)stafflist.AliceName = form["AliceName"]; 的方法來(lái)給這個(gè)模型類(lèi)對(duì)象賦予表單中提供的值。重點(diǎn)是,請(qǐng)注意,stafflist.IdentityId = identityid; 得identityid是通過(guò)我所需要的值轉(zhuǎn)換而來(lái)的。然后再把這個(gè)對(duì)象加在_staffdb之中,保存即可。這樣,就可以很靈活的更新我所需要的值,而不單單是表單提供值的方法來(lái)提供了。
  其中,AddStaff界面如下:

  OK,至此,表單的靈活提交問(wèn)題已經(jīng)解決了!

  Ps:本人的界面美工不是很好,所以就簡(jiǎn)單采用了微軟提供的例子程序中的css。見(jiàn)諒見(jiàn)諒,呵呵!

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/MarkRao/archive/2012/02/17/2355475.html

總結(jié)

以上是生活随笔為你收集整理的ASP.NET MVC 2 学习笔记二: 表单的灵活提交的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩一中文字幕 | 日韩欧美一二区 | 久久一线 | 国产丝袜精品视频 | 精品人妻一区二区三区四区不卡 | 大乳女喂男人吃奶视频 | 宅男视频在线免费观看 | 秋霞视频在线观看 | 秋霞午夜伦理 | 91久久精品在线 | 四虎网站在线播放 | 欧美三级少妇高潮 | 欧美午夜一区二区三区 | 亚洲国产精品成人无久久精品 | 国产麻豆一区二区三区在线观看 | 国产欧美一区二区三区免费看 | 欧美巨乳在线观看 | 爽爽影院在线免费观看 | 波多野结衣在线播放 | 亚洲精品图区 | 亚洲激情自拍 | 伊人夜色| 美国福利片 | 清冷男神被c的合不拢腿男男 | 狠狠操欧美 | 人人爽人人射 | 91免费在线观看网站 | 日韩av片在线免费观看 | 日美女逼逼 | 亚洲午夜久久 | 国产一级在线 | 瑟瑟视频免费看 | 好大好舒服视频 | 国产免费一级 | 精品亚洲成人 | 亚洲在线视频免费观看 | 一本到av| 欧美性激情 | 91亚洲高清| av中文在线资源 | 极品淫少妇 | 欧美大片免费 | 国产av日韩一区二区三区精品 | 花房姑娘免费全集 | 爱久久| 日韩人妻精品一区二区三区视频 | 香蕉久久夜色 | jiizzyou性欧美老片 | 瑟瑟综合 | 亚洲男人天堂 | 国产剧情一区 | 亚洲熟妇av日韩熟妇在线 | 一区二区三区免费高清视频 | 视频一二区| 亚洲第一综合色 | 中国女人黄色大片 | 极品白嫩丰满美女无套 | 欧美少妇一级片 | 97精品熟女少妇一区二区三区 | 不卡的av在线免费观看 | 有码一区 | 国产视频xxxx | av观看网址| 国产白丝袜美女久久久久 | 成人亚洲玉足脚交系列 | 亚洲第一在线播放 | 香蕉国产精品视频 | 老熟妇一区二区 | 日韩一区二区影院 | 操操操免费视频 | 一区二区三区中文视频 | 成人自拍视频网站 | 国产精品视频麻豆 | 亚洲成人三级 | 久久电影一区二区 | 国产一区二区视频在线观看免费 | 日本羞羞网站 | 小宵虎南在线观看 | 日韩欧美一区视频 | 91视频三区 | 狼人精品一区二区三区在线 | 99视频网站 | 91人人爱| 小草av在线 | 在线观看 中文字幕 | 亚洲伦理中文字幕 | 饥渴放荡受np公车奶牛 | 丰满少妇一区二区 | 一级日韩一级欧美 | 日本美女动态 | 亚洲吧 | 日韩精品免费一区二区三区 | 亚洲成a人片 | 精品人妻久久久久一区二区三区 | 91网站在线免费观看 | 免费涩涩 | 色婷五月天 | 亚洲天堂2024 | 国内自拍偷拍视频 |