又到周末更新时,这周还是忙忙碌碌的,本以为双休日可以好好休息,不料周五晚上突然受到朋友邀请第二天去看ChinaJoy,而且还要早点进去,看CJ不比世博会轻松,排队走路累死了。 由于CnBlog是技术博客,就不上乱七八糟的照片了,传张清纯的(为不影响页面,大家自己到博客园我相册去看。http://www.cnblogs.com/revolution/gallery/400221.html)
回到正题,上篇博客提到的问题已经解决(http://www.cnblogs.com/revolution/archive/2012/07/25/2601286.html),感谢回答的博友,我的解决方法看起来并不高明,就是重写Model,把缺的属性补上去。(同时引发一个思考,我原先以为一个Model模型类必须对照数据库表全部字段来建立属性,能少不能多,但是实际开发中,例如查询,列表显示等功能,只要涉及到主外键关系,还是添加下相应的关联属性来的方便,所以即便是建立模型类也不是生成工具简单的生成就可以的)。
解决方法
public ActionResult GetMainBoard()//获取主板列表
{ var MBList = from m in db.MainBoard join s in db.Supplier on m.Supplier equals s.ID join x in db.XinPianGroup on m.XinPianGroup equals x.ID select new { Name = m.Name, PingTai = m.PingTai,ImgSrc=m.ImgSrc, Price = m.Price, Atx = m.Atx, SupplierImg = s.ImgSrc, XingPianName = x.Name }; List<MainBoard> Mb = new List<MainBoard>(); foreach(var model in MBList) { Mb.Add(new MainBoard { Name = model.Name, PingTai = model.PingTai,ImgSrc=model.ImgSrc, Price = model.Price, Atx = model.Atx,XingPianName=model.XingPianName }); } return View(Mb); }
由于前台View的强类型为@model IEnumerable<DiyPC.Models.MainBoard>所以Linq连接查询后需要转型,我才去Foreach遍历Linq结果集 转成前台Model的类型,这样前台又可以通过 item.属性 来绑定页面,感觉很方便!
这样从复操作,把每种硬件类别的Controller方法,视图搞定后,后台基本功能就搞定了,接下来,做一个delete方法。
删除方法采用AJAX无刷新删除,删除前弹窗提示(弹窗用的是JBOX,感谢作者@kudy)
<a class="opt" id="delBtn" title="删除" href="javascript:DeleteById(@item.ID);"><span class="icon-sprite icon-delete"></span></a>
这是删除按钮调取JAVASCRIPT的方法,
<script type="text/javascript">
// 根据ID删除用户
DeleteById = function (id) { jBox.confirm("此操作不可恢复,确定要删除吗?", "删除用户", function (v, h, f) { if (v == 'ok') { jBox.tip('正在处理...', 'loading'); // 在这ajax处理
$.ajax({ type: 'post', url: '/List/Delete', data: 'id=' + id, success: function (data) { if (data.result.toString() == "true") { window.setTimeout(function () { jBox.tip('删除成功!', 'success'); $.get("/List/GetUser", "", function (data) { $("#TableMain").html(data); }, "html"); }, 1000); } else { window.setTimeout(function () { jBox.tip('删除失败!', 'false'); $.get("/List/GetUser", "", function (data) { $("#TableMain").html(data); }, "html"); }, 1000); } } }) } return true; }); }; </script>
删除后异步刷新列表 整个页面没有刷新过,体验不错,实际开发是,自己本机测试速度很快,但是发布到虚拟主机后测试,有时有小卡顿。
最后我把测试网址发给大家,这也是这几天的成果,屏蔽了部分功能。http://kiss96803.s2.jutuo.net/
还有就是楼主发现自己水平不够,打算闭关修炼后再继续这个业余时间的项目,所以下篇博文发布之时后台基本所有工能都要完成,开始前台的开发。
最后祝中国奥运健儿在伦敦展示自我风采,多多摘金!