MVC4商城项目三:分部视图在导航条上的应用

写了几天发觉大部分时间用在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商城项目三:分部视图在导航条上的应用

时间: 2024-10-10 16:33:02

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

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

从MVC4开始,我们就发现,项目中对Global.asax进行了优化,将原来在MVC3中使用的代码移到了[App_Start]文件夹下,而Global.asax只负责初始化.其中的BundleConfig类就有个很牛X的功能:合并与压缩.想到以前做ASP.NET的时候要通过工具压缩,手动合并,很麻烦.通过BundleConfig可以大大的提高工作效率和项目性能. 一.基本的使用 1.1.Global.asax文件的初始化 protected void Application_Start() {

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

用户身份验证,依赖于 forms 身份验证类:FormsAuthentication,它是一串加密的cookie 来实现对控制器访问限制和登陆页面的访问控制.它在浏览器端是这样子的: 需求:我们要实现对用户中心只有登录的用户才能访问,如果没登录就跳转到登录页面,其它页面都可以访问: 首先来看登录控制器的代码: UserDto user = UserService.GetUserById(Convert.ToInt32(msg.Msg)); //为提供的用户名提供一个身份验证的票据 FormsAu

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

(1)navigationBar导航条可以看做是self.navigationController导航控制器的一个属性,可以直接用点来表示self.navigationController.navigationBar,当然navigationBar自己还有很多属性,比如样式barStyle.背景backgroundColor.frame属性(可以获取宽高这些信息),还可以用setBackgroundImage方法设置背景图片,当然图片多了可以使用clipsToBounds剪裁. (2)但,nav

如何调整导航条上的leftBarButtonItem和rightBarButtonItem的位置

最近发现一些开发ios的新朋友在碰到调整导航条上leftBarButtonItem和rightBarButtonItem的位置的问题显得非常棘手 , 我上网查了下发现网上对这种问题的回答或者提出的解决方案并不是很好,而且很多的都是根本就无法达到自由调整左右按钮位置的.下面我以leftBarButtonItem为例: 设想这类问题的出处:(美女的诱惑) 自定义leftBarButtonItem和rightBarButtonItem 同时为了更好体现封装性新建一个分类来封装好button方法 然后我

调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距

我们发现,在设置navigationItem的leftBarButtonItem或rightBarButtonItem时,用CustomView初始化UIBarButtonItem,不论怎么设置CustomView的frame,添加到导航条上之后总是和屏幕边界有一定的间距(5pix),如何自由调整这个间距呢? 初始化一个用于控制间距的UIBarButtonItem实例negativeSpacer,并设置negativeSpacer的width属性的值,设为-5的时候,正好可以使按钮与屏幕边界值为

自定义导航条上的标题文字的大小以及颜色

在做项目开发时,有的时候回自定义导航条视图,常见的是设置标题文字的大小颜色.左侧以及右侧navgationItem. 在做自定义导航视图的时候 ,导航项都可以用自定义视图的形式自定义. 自定义导航条标题的时候有两种方法:一是,采用自定义视图的方式:二是,采用系统的方法. 采用自定义视图view的方式 就是在导航向上添加一个titleView,可以使用一个label,再设置label的背景颜色透明,字体什么的设置就很简单了. UILabel *titleLabel = [[UILabel allo

ASP.NET MVC4 学习系统三(视图)

视图(Views)    在ASP.NET MVC框架中,想要返回给用户HTML的控制器操作,就要返回ActionResult类型的ViewResult实例,ActionResult知道如何渲染应答结果.当渲染视图时,ASP.NET MVC将会使用控制器提供的名字.以HomeController的Index操作为例,如下:         public ActionResult Index()        {        ViewBag.Message="Your app descripti

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

上一节我们做完了添加和更新商品的功能,这两个部分里有涉及到商品图片的上传,并没有详细解说.为此,这篇文章详细介绍一下Struts2实现文件上传的功能. 1. 封装文件信息 我们首先得有一个Model来封装文件的信息,这个Model里需要有三个属性:文件.文件类型和文件名.针对我们要传的图片,我们新建一个Model如下: public class FileImage { private File file; private String contentType; private String fi

iphone中UINavigationBar(导航条视图)的介绍

多视图应用程序中,我们常常使用到自定义UINavigationBar来完成导航条的设置. 1.创建一个导航条 UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 2.有了导航条以后,必须在导航条上设置一个item集合,用来放置中间的标题,和左右的按钮,因为上面空间有限,只有左右两个按钮. //创建一个导航条集合 UINavigationItem *n