helper实现隐藏前台特效

简介: helper实现隐藏前台特效

想实现下面的功能:如下图所示


679140-20151209115153324-363881934.png

点击已结束按钮,使上面的红色跳转到已结束活动按钮上面,本来前台代码里面是使用了一个action来实现的,但是我改了点东西,使跳转不了。


前台代码

<ul class="nav nav-tabs">
        <li class="active">
             <a href="#tab_1" data-toggle="tab">
                 4 Columns
             </a>
        </li>
        <li>
             <a href="#tab_2" data-toggle="tab">
                 3 Columns
             </a>
       </li>
       <li>
             <a href="#tab_3" data-toggle="tab">
                 2 Columns
             </a>
          </li>
   </ul>



这里要实现那个功能就必须将li标签中class=”active”放到下面的li中。但是我想在前台让用户来点击,来使颜色变化。


经过和好友的讨论,可以使用@helper来实现。


1:首先在视图中定义个变量currentText,让其等于ViewBag.Text,这个我们可以在控制器中传递过来。


@{
  string currentText=Viewbag.Text;
}



2:在控制器中,我们观察看点击传到Controller中的是参数,我们判断参数来往View中传递不同的ViewBag.Text.我这里是根据传递的状态参数来变化的。


if (model.ActivityState == ActivityState.正在进行)
{
    ViewBag.Text = "active";
}
else
{
    ViewBag.Text = "activeEnd";
}



3:在View中写好要替代的代码。


@helper MenuItem(string currentText, string allowText)
 {
     @Html.Raw(currentText == allowText ? "active" : "")
 }

这里是使用了@helper的功能,直接定义了个方法,里面有两个参数,


currentText,allowText.第一个我们从控制器里面进行传递。第二个我们在要使用的地方直接写死,比如我这个要在

  • 里面直接写死就行。

  • <ul class="nav nav-tabs">
        <li class="@MenuItem(currentText,"active")">
            <a href="@Url.Action("Index", "Activity", new { id=Model.Id,ActivityState=ActivityState.正在进行})">
                正在进行活动
            </a>
        </li>
        <li class="@MenuItem(currentText,"activeEnd")">
            <a href="@Url.Action("Index", "Activity", new { id = Model.Id, ActivityState = ActivityState.已结束 })">
                已结束活动
            </a>
        </li>
    </ul>



    4:其实就是相当于调用了我们在前台定义的方法,直接传递参数,然后再方法里面进行了三元表达式的判断。


    效果:

    679140-20151209115154715-199156427.png679140-20151209115156199-1009872916.png

    目录
    相关文章
    |
    6月前
    |
    JavaScript 前端开发
    layui用layer.open打开子页面并获取子页面的ueditor富文本编辑器的内容
    该内容描述了一个Web应用的交互流程,其中父页面通过调用子页面的JavaScript函数来获取富文本编辑器的内容。子页面包含一个富文本编辑器和一个`callbackdata`函数,用于返回编辑器的文本内容。父页面使用`layer.open`打开子页面作为弹窗,并在用户点击提交时,访问子页面的`callbackdata`获取编辑器内容,同时检查其他表单字段,如类型、标题等是否为空,以确保数据完整。
    576 0
    |
    6月前
    |
    JavaScript
    如何使用JS控制指定页面大小开启全屏和退出全屏
    如何使用JS控制指定页面大小开启全屏和退出全屏
    55 0
    |
    4月前
    |
    小程序
    uniapp如何隐藏默认的页面头部导航栏,uniapp开发小程序如何隐藏默认的页面头部导航栏
    uniapp如何隐藏默认的页面头部导航栏,uniapp开发小程序如何隐藏默认的页面头部导航栏
    572 0
    |
    5月前
    |
    小程序 JavaScript 前端开发
    微信小程序如何控制元素的显示和隐藏
    微信小程序如何控制元素的显示和隐藏
    |
    6月前
    |
    前端开发 JavaScript 程序员
    avue中怎样隐藏新增和编辑的按钮
    avue中怎样隐藏新增和编辑的按钮
    |
    6月前
    HBuilderX使用uniapp中的video标签开发视频应用APP,出现视频覆盖<view>图层无法遮住等问题如何解决?
    HBuilderX使用uniapp中的video标签开发视频应用APP,出现视频覆盖<view>图层无法遮住等问题如何解决?
    |
    JavaScript 前端开发 API
    几行代码搞定网页全屏自定义内容
    screenfull 是用于跨浏览器使用 JavaScript Fullscreen api 的简单包装器,可让您将页面或任何元素全屏显示 。
    |
    小程序 JavaScript
    整理微信小程序控制view隐藏显示的五种方法
    整理微信小程序控制view隐藏显示的五种方法
    832 0
    |
    Web App开发 移动开发 前端开发
    Web全屏模式轻松掌握[局部元素全屏展示]
    全屏功能封装在一个类里面: 我把全屏模式封装在一个类里面,在代码中有详细的注释,如果有需要的话,直接把类拿出来,根据栗子和注释使用即可。 代码在codepen的demo里。 何谓全屏? MDN介绍: 使用提供的API,让一个元素与其子元素,可以占据整个屏幕,并在此期间,从屏幕上隐藏所有的浏览器用户界面以及其他应用。 chrome下的全屏表现: 全屏会隐藏标签栏,书签栏 如果网页一开始不是全部撑开的形式,全屏下,也会将要全屏的元素充满整个屏幕 可以多层全屏,如栗子中一样,可以先左边全屏,然后红色全屏。
    600 0
    Web全屏模式轻松掌握[局部元素全屏展示]
    |
    Dart API 开发者
    【Flutter】Hero 动画 ( Hero 动画使用流程 | 创建 Hero 动画核心组件 | 创建源页面 | 创建目的页面 | 页面跳转 )
    【Flutter】Hero 动画 ( Hero 动画使用流程 | 创建 Hero 动画核心组件 | 创建源页面 | 创建目的页面 | 页面跳转 )
    224 0
    【Flutter】Hero 动画 ( Hero 动画使用流程 | 创建 Hero 动画核心组件 | 创建源页面 | 创建目的页面 | 页面跳转 )