又到周末更新时,这周还是忙忙碌碌的,本以为双休日可以好好休息,不料周五晚上突然受到朋友邀请第二天去看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/
还有就是楼主发现自己水平不够,打算闭关修炼后再继续这个业余时间的项目,所以下篇博文发布之时后台基本所有工能都要完成,开始前台的开发。
最后祝中国奥运健儿在伦敦展示自我风采,多多摘金!