多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > MVC 更新部分字段

MVC 更新部分字段

來源:程序員人生   發布時間:2014-11-10 08:02:00 閱讀次數:2624次

<1>首先是在項目中添加1個ADO.NET實體數據模型,選擇MemberInfo表 他會自動在模型里面生成1個MemberInfo的類,也會生成1個對應的實體類DataBaseEntities。用的時候只有用模型里的MemberInfo類和DataBaseEntities就行了。 不需再額外添加MemberInfo類了  【注意:這個DataBaseEntities 是你的http://www.vxbq.cn/db/名字+Entities】

<1>

MemeberCenter控制器

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace bigtree.Controllers { public class MemberCenterController : Controller { bigTreeEntities db = new bigTreeEntities(); public ActionResult Index(int id) { ViewData["uid"] = id; return View(); } /// <summary> /// 從實體中查詢出1條數據出來,然后將這條數據保存到ViewData.Model中 。這樣在Info視圖里就能夠根據Model來取數據了 /// </summary> /// <param name="id"></param> /// <returns></returns> [HttpGet] public ActionResult Info(int id) { ViewData["uid"] = id; //var queryUserInfo = from d in db.MemberInfo // where d.id == id // select d; //ViewData.Model = queryUserInfo.Single(); var queryUserInfo = db.MemberInfo.Single(x => x.id == id); var data= MemberDetail.ConvertToViewModel(queryUserInfo); ViewData.Model = data; return View(); } //[HttpPost] //public ActionResult Info(bigtree.MemberInfo newsMemberInfo) //{ // //db.MemberInfo.Attach(newsMemberInfo); // //db.ObjectStateManager.ChangeObjectState(newsMemberInfo, System.Data.EntityState.Modified); // //db.SaveChanges(); // bigtree.MemberInfo oldMemberInfo = db.MemberInfo.FirstOrDefault(x => x.id == newsMemberInfo.id); // oldMemberInfo.mobile = newsMemberInfo.mobile; // oldMemberInfo.name = newsMemberInfo.name; // oldMemberInfo.email = newsMemberInfo.email; // oldMemberInfo.userName = newsMemberInfo.userName; // UpdateModel<bigtree.MemberInfo>(oldMemberInfo); // db.SaveChanges(); // //db.CreateObjectSet<bigtree.MemberInfo>().ApplyCurrentValues(newsMemberInfo); // //db.SaveChanges(); // return View(); //} /// <summary> /// /// </summary> /// <param name="info">這個info其實你更新的對象</param> /// <returns></returns> [HttpPost] public ActionResult Info(MemberDetail info) { //從實體中查詢出1條數據(1個對象) var queryUserInfo = db.MemberInfo.Single(x => x.id==info.Id); //調用MemberDetail.ConvertToEntity方法對實體對象的字段進行更新。 var data = MemberDetail.ConvertToEntity(info, queryUserInfo); //使用來自控制器確當前值提供程序的值更新指定的模型實例(data) UpdateModel<bigtree.MemberInfo>(data); //將所有更新保存到數據源并重置對象上下文中的更改跟蹤 db.SaveChanges(); //db.CreateObjectSet<bigtree.MemberInfo>().ApplyCurrentValues(newsMemberInfo); //db.SaveChanges(); return View(); } } }

info視圖

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/MemberCenter.Master" Inherits="System.Web.Mvc.ViewPage<bigtree.ViewModel.MemberDetail>"%> <%@ Import Namespace="bigtree" %> <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> <% using (Html.BeginForm()) {%> <div class="rightCon"> <div class="nowTil"> <h3> 個人資料</h3> </div> <ul class="memForm"> <li> <p class="setterTil"> 手機:</p> <div class="setterBd"> <%--<input type="text" class="setterInput fl" value=" <%: Model.mobile %>" readonly="">--%> <%: Html.TextBoxFor(x => x.Mobile, new { @class = "setterInput fl" ,@readonly=""})%> <div class="setterExplain"> (請填寫真實入住人姓名,每間房只填寫以為便可)</div> </div> </li> <li> <p class="setterTil"> 姓名:</p> <div class="setterBd"> <%--<input type="text" class="setterInput fl" value="張小凡" readonly="">--%> <%: Html.TextBoxFor(x => x.Name, new { @class = "setterInput fl"})%> </div> </li> <li> <p class="setterTil"> 郵箱:</p> <div class="setterBd"> <%--<input type="text" class="setterInput fl">--%> <%: Html.TextBoxFor(x => x.Email, new { @class = "setterInput fl" })%> <div class="setterExplain"> 未驗證</div> </div> </li> <li> <p class="setterTil"> 昵稱:</p> <div class="setterBd"> <%--<input type="text" class="setterInput fl">--%> <%: Html.TextBoxFor(x=>x.UserName,new {@class="setterInput fl"}) %> </div> </li> <li> <p class="setterTil"> 性別:</p> <div class="setterBd"> <label class="sex"> 男 </label> <%--<input type="radio" name="sex">--%> <%:Html.RadioButtonFor(x=>x.Gender,"1",new {@name="sex"}) %> <label class="sex"> 女 </label> <%:Html.RadioButtonFor(x=>x.Gender,"0" ,new {@name="sex"}) %> </div> </li> </ul> <input type="submit" value="保存" class="saveBtn"> </div> <% } %> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server"> <script type="text/javascript"> $(function () { $(".navList > :contains('個人資料')").addClass("cur"); }) </script> </asp:Content>

ViewModel 模型

using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace bigtree.ViewModel { public class MemberDetail { public int Id { get; set; } public string Mobile { get; set; } public string Name { get; set; } public string UserName { get; set; } public string Email { get; set; } public string Gender { get; set; } /// <summary> /// 將從實體(數據表)中查詢出來的對象轉換成ViewModel。其實也就是將從實體中查詢出來的對象的屬性字段,賦值給ViewModel。然后由ViewModel來將值展現在前端頁面。 /// </summary> /// <param name="info"></param> /// <returns></returns> public static MemberDetail ConvertToViewModel(bigtree.MemberInfo info) { MemberDetail memberDetail = new MemberDetail(); memberDetail.Mobile = info.mobile;//將實體的字段賦值給ViewModel對象的字段 memberDetail.Email = info.email; memberDetail.Name = info.name; memberDetail.UserName = info.userName; memberDetail.Gender = info.sex; memberDetail.Id = info.id; return memberDetail; //返回1個ViewModel 字段 } /// <summary> /// 將ViewModel轉換成實體。首先用戶從實體中查詢出1條數據(這條數據就是參數bigtree.MemberInfo info),然后我要對這條數據進行更新。這個更新就是用戶在前端頁TextBox中輸入的數據(其實也就是給ViewModel對象的屬性賦值的進程)。然后將這個對象的所有屬性賦值給從實體中查詢出來的對象的對應屬性 /// </summary> /// <param name="memberDetail"></param> /// <param name="info"></param> /// <returns></returns> public static bigtree.MemberInfo ConvertToEntity(MemberDetail memberDetail, bigtree.MemberInfo info) { info.email = memberDetail.Email; //將用戶在頁面輸入的Email的值賦值給 實體bigtree.MemberInfo類的email字段,以到達更新實體類(其實這個實體類就是數據表)中的數據 info.mobile = memberDetail.Mobile; info.id = memberDetail.Id; info.name = memberDetail.Name; info.sex = memberDetail.Gender; info.userName = memberDetail.UserName; return info; //返回1個更新后的實體對象 } } }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 老牛影视在线一区二观看 | 片免费观看网站视频 | 91国内精品久久久久怡红院 | 欧美精品18videosex性俄罗斯 | freexxx性欧洲hdtv | 久久久久久一品道精品免费看 | 久久亚洲欧洲日产国码 | 国产二区自拍 | 在线观看亚洲免费视频 | 亚洲看 | 欧美高清一级啪啪毛片 | 久久99亚洲精品一区二区 | 免费精品久久 | 日韩永久在线观看免费视频 | 免费看黄网站大全 | 久操欧美 | 亚色国产 | 久久成人国产精品二三区 | 91porn丨首页入口 | 国产精品久久久久久一区二区三区 | 欧美办公室系列激情videos | 久久麻豆亚洲精品 | 日本免费观看网站 | 羞羞视频入口网站 | 欧洲久久 | 精品亚洲视频在线 | 亚洲 欧美 日韩中文字幕一区二区 | 国产精品久久久久久吹潮 | 国产九色在线 | 久久久久日韩精品无 | 免费在线公开视频 | 国产一区二区久久精品 | 性色生活免费看性大片 | 国内自拍 亚洲系列 欧美系列 | 亚洲欧美日韩国产精品久久 | 牛和人交videos欧美3d | 99热最新网站| 中文字幕最新 | 午夜视频在线观看免费观看在线观看 | 尤物视频在线观看免费 | 热灸灸这里只有精品 |