写了几天发觉大部分时间用在JS上了,本来想写个musicstore,却加了框架,然后又想用后台,然后又想用上bootstrapt,然后又想弄权限设计,然后又想…………

看来是想多了~

好吧,最近把后台搭起来了,用了metronic.bootstrap, 真心很强大。功能很多,为了节约时间成本就在它上面改吧。先上图看看

框架演示地址:http://dreamsky.github.io/main/blog/metronic-bootstrap/index.html

下载地址:http://dreamsky.github.io/main/blog/metronic-bootstrap/metronic.bootstrap.rar

来自分享:梦想天空

要实现导航条和菜单栏的功能,我用到了分部视图,就当是WEBFORM的用户控件来理解吧。

先看一下实体模型:

 public class UrlConfigDto
{
public int Id { get; set; } public string UrlName { get; set; } public string Url { get; set; } public int PageLev { get; set; } public int LevOrder { get; set; } public int UrlRole { get; set; } public string Icon { get; set; } public int POrder { get; set; }
}

  

我想把<URL,UNAME>绑定在视图上,所以我的Service层返回的是List<string>

 public List<string> GetMeunTool(int orderId)
{
List<string> dic = new List<string>(); UrlConfig urlConfig= _urlConfigRepository.GetFiltered(a => a.LevOrder == orderId).FirstOrDefault();
if (urlConfig==null)
{
return null;
}
dic.Add(urlConfig.UrlName+"^"+urlConfig.Url+"/"+urlConfig.LevOrder);
for (int i = 0; i < urlConfig.PageLev-1; i++)
{
UrlConfig tem = _urlConfigRepository.GetFiltered(a => a.LevOrder == urlConfig.POrder).FirstOrDefault();
dic.Add(tem.UrlName + "^" + tem.Url+ "/" + tem.LevOrder );
urlConfig.POrder = tem.LevOrder;
}
return dic;
}

创建分部视图,传递数据模型:

  public PartialViewResult MeunTool(int id)
{
return PartialView(_urlService.GetMeunTool(id));
}

来看看视图页面

@model List<string>

@if (Model == null)
{
<h3 class="page-title">主页</h3>
<ul class="breadcrumb">
<li>
<i class="icon-home"></i>
<a href="/Admin/Admin">主页</a>
</li>
</ul>
}else if (Model.Count == 1)
{
<h3 class="page-title">@Model[0].Split('^')[0] </h3>
<ul class="breadcrumb">
<li>
<i class="icon-home"></i>
<a href="/Admin/Admin">主页</a>
<i class="icon-angle-right"></i>
</li>
<li><a href="@Model[0].Split('^')[1]">@Model[0].Split('^')[0]</a></li> </ul>
}

其实我这里想用Dictionary<string,string> 的,不过PartialView()里不允许。

在模板页面我们就可以这样调用分部视图了:

  @{
int id = Convert.ToInt32(Html.ViewContext.RouteData.Values["id"]);
Html.RenderAction("MeunTool", "Admin", new { id = id });
}

说明一下这里的id的设计作用 ,这个ID是urlconfig表的惟一键,我用它来识别当前页的位置,如URL:http://localhost:11903/Admin/Admin/UserInfo/301  

@Html.ViewContext.RouteData.Values["id"]  在视图页面可以直接接受到id传参

PS:想要当做项目做而不一个DEMO,在用户体验得下大功夫,JS是最耗时间的,有点拖垮人的节奏……

具体代码的实现,请参见 https://code.csdn.net/denghao156/ktnmb_mvc4

MVC4商城项目三:分部视图在导航条上的应用的更多相关文章

  1. 【iOS开发-22】navigationBar导航条和navigationItem设置:基本搞定导航条上的文字和按钮以及各种跳转

    http://blog.csdn.net/weisubao/article/details/39646739?utm_source=tuicool&utm_medium=referral (1 ...

  2. MVC4商城项目四:应用Bundle捆绑压缩技术

    从MVC4开始,我们就发现,项目中对Global.asax进行了优化,将原来在MVC3中使用的代码移到了[App_Start]文件夹下,而Global.asax只负责初始化.其中的BundleConf ...

  3. MVC4商城项目一:框架设计

    代码已托管在  https://code.csdn.net/denghao156/ktnmb_mvc4 先上图,设计模式参考:ddmvc4.codeplex.com 一.unintofwork  设计 ...

  4. MVC4商城项目二:用户身份验证的实现

    用户身份验证,依赖于 forms 身份验证类:FormsAuthentication,它是一串加密的cookie 来实现对控制器访问限制和登陆页面的访问控制.它在浏览器端是这样子的: 需求:我们要实现 ...

  5. 19 Flutter仿京东商城项目 商品详情 底部浮动导航布局 商品页面布局

    效果: widget/JdButton.dart import 'package:flutter/material.dart'; import '../services/ScreenAdaper.da ...

  6. 【SSH网上商城项目实战13】Struts2实现文件上传功能

    转自:https://blog.csdn.net/eson_15/article/details/51366384 上一节我们做完了添加和更新商品的功能,这两个部分里有涉及到商品图片的上传,并没有详细 ...

  7. 导航条上UIBarButtonItem的更改方法(使用initWithCustomView:btn)

    UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:self.newMe ...

  8. React Native商城项目实战07 - 设置“More”界面导航条

    1.More/More.js /** * 更多 */ import React, { Component } from 'react'; import { AppRegistry, StyleShee ...

  9. javaWEB简单商城项目

    javaWEB简单商城项目(一) 项目中使用到了上一篇博文的分页框架,还有mybatis,重点是学习mybatis.现在有些小迷茫,不知道该干啥,唉,不想那么多了,学就对了 一.项目功能结构 1.功能 ...

随机推荐

  1. java生产者消费者并发协作

    随着职务转变,代码荒废很久了,很多时间都是在沟通需求,作为一名技术员,不写代码就感觉是在自废武功,慢慢颓废了很多,今天重新回顾了下JAVA线程知识,基础知识就不梳理了,网上也很多,主要关键几个状态位( ...

  2. [TYVJ] P1238 路径

    路径 描述 Description 图是由一组顶点和一组边组成的.一条边连接两个顶点.例如,图1表示了一个有4个顶点V.5条边的图.图中,每条边e是有方向的,方向从起点到终点,并且每条边都有价值.用整 ...

  3. js各种进制数之间的转换

    计算机中常用的进制数有二进制.八进制.十进制.十六进制 一.十进制 to 其他 var x = 10; // 或定义其他值均可 x.toString(n); // n 代表要转换到的进制,比如n可以为 ...

  4. jquery 替换元素函数

    1.replaceWith()使用括号内的内容替换所选择的内容.$("#div").replaceWith("<div id="div2"> ...

  5. Linux安装oracle报错解决

    安装报错:[oracle@centos1 database]$ ./runInstaller Starting Oracle Universal Installer... Checking insta ...

  6. Android添加横线和竖线分割界面

    竖线 <View       android:layout_width="1dip"     android:layout_height="match_parent ...

  7. 【转】使用adb命令对手机进行截屏(截图)保存到电脑,SDCard

    原文网址:http://blog.csdn.net/huangyabin001/article/details/29198367 adb shell /system/bin/screencap -p  ...

  8. windows nfs server for linux

    摘要 在开发嵌入式系统的过程中,为了方便调试与文件共享,需要使用到nfs,即网络文件系统,这位板子的调试测试带来了很大的方便.之前在linux系统下开发,与ARM11核心板 linux系统对接共享也比 ...

  9. 安全:加固你的ssh 登录

    SSH 是我们控制虚拟主机的一种途径,这个途径可以让我们拥有完全的控制权,如果对于这个控制权没有进行很好的安全处理,那么将会造成很大的安全问题.      我们可以在系统的日志文件 (例如:/var/ ...

  10. 再造轮子之网易彩票-第一季(IOS 篇 by sixleaves)

    前言 在网上看了别人做的模仿网易彩票的项目, 于是也跟着用自己的想法做了一篇.写这篇博客的目的, 在于UI综合的一次小练习, 同时总结和串联其各个控件之间的应用.封装思想等.考虑到有人上不了githu ...