zoukankan      html  css  js  c++  java
  • 激活当前视图菜单高亮呈现

    在一个控制器中,它有很几个视图,在视图中有一个菜单。点击某一菜单,它分切换至对应的视图,当前的视图的菜单要高亮显示。
    这个要求,也有许多网友问过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的属性,以后我们需要从视图中传参数给部分视图时,就使用这个属性。

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



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

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

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

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

  • 相关阅读:
    HDU 3757 Evacuation Plan DP
    UVa 1473
    LA 6047 Perfect Matching 字符串哈希
    HDU 3038 How Many Answers Are Wrong 并查集带权路径压缩
    专业程序员必知必会技巧:驯服复杂代码
    OpenCV、OpenCL、OpenGL、OpenPCL
    关于dlg和pro的问题
    关于编译PCL1.71
    VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
    AI:从游戏引擎--到AI
  • 原文地址:https://www.cnblogs.com/insus/p/5287093.html
Copyright © 2011-2022 走看看