• 激活当前视图菜单高亮呈现


    在一个控制器中,它有很几个视图,在视图中有一个菜单。点击某一菜单,它分切换至对应的视图,当前的视图的菜单要高亮显示。
    这个要求,也有许多网友问过Insus.NET。今天决定做一个例子,供大家学习与参考。

    先看看效果:

    上图中,当浏览China的视图时,China这行菜单是Active的,其它没有效果,依次类说。

    接下来,看看菜单的源代码:

    <ul>
        <li>@Html.ActionLink("Malaysia (2)", "Malaysia", "Career")</li>
        <li>@Html.ActionLink("Thailand (0)", "Thailand", "Career")</li>
        <li>@Html.ActionLink("Phillipines (2)", "Philippines", "Career")</li>
        <li class="active"> @Html.ActionLink("China (0)", "China", "Career")</li>
        <li>@Html.ActionLink("Hong Kong (0)", "HongKong", "Career")</li>
    </ul>

    当前的源程序是每一个视图均有此段代码。变化的地方是class="active"。
    Ok,实现此功能,要知道用户浏览的是哪一个视图。
    获取当前的视图名,你可以参考这篇《获取当前视图名http://www.cnblogs.com/insus/p/5283729.html

    如需要对此菜单作一些维护或是修改,得同时打开这几个视图来一起修改。因此我们还得重构这几个视图,解决html代码的冗余可以新建一个ParitalView来解决。

    接下来面对的关键的地方要处理在视图中传递一个参数给部分视图。

    创建一个视图,把菜单html代码拷贝过去,先保存,后面我们再来修改它:

    现在我们需要处理,把当前的视图名,传至部分视图中去的功能。在Models中,创建一个PartialViewParameter类:

    这个类中有一个public的属性,以后我们需要从视图中传参数给部分视图时,就使用这个属性。

    此时我们可以去控制器中创建一个部分视图操作:



    上图中的红公箭头,就是参数传递的入口。

    下面的工作,就是分别打开与此有关的各个视图:

    参数已经从视图传递到部分视图去了,那在部分视图,怎样接收与应用此参数呢?
    菜单我们不能再直接写了,需要动态产生:

    好的,我看看实现的功能与重构后程序运行效果:

  • 相关阅读:
    water——小根堆+BFS
    P5930 [POI1999]降水/SP212 WATER
    Blue Mary的战役地图——Hash表
    Antisymmetry(反对称)——Manacher
    数论基础
    可持久化数据结构(线段树,trie树)
    20200725模拟赛5题解
    vscode 如何创建git 新分支
    mysql 把一个数据库中的表数据复制到另一个数据库中
    shrio中的用法以及配置
  • 原文地址:https://www.cnblogs.com/insus/p/5287093.html
Copyright © 2020-2023  润新知