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

点击已结束按钮,使上面的红色跳转到已结束活动按钮上面,本来前台代码里面是使用了一个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.第一个我们从控制器里面进行传递。第二个我们在要使用的地方直接写死,比如我这个要在<li>里面直接写死就行。

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

效果:

helper实现隐藏前台特效的更多相关文章

  1. thinkphp5 隐藏前台入口文件index.php 后台入口文件admin.php不隐藏

    情景:应用目录下有两个模块 admin(后台) 和 home(前台) 需求:1.访问前台(home)时隐藏index.php  即 域名/home/前台控制器/前台控制器里的方法 这样的访问模式 2. ...

  2. 【Web】CSS实现鼠标悬停实现显示与隐藏 特效

    鼠标悬停实现显示与隐藏特效 简单记录 - 慕课网 Web前端 步骤四:鼠标悬停实现显示与隐藏特效 初步掌握定位的基本使用,以及CSS选择器更高级的运用,完成一个网页中必会的鼠标经过隐藏显示特效. 实现 ...

  3. CSS控制文本超出指定宽度显示省略号和文本不换行

    一般的文字截断(适用于内联与块): .text-overflow { display:block;/*内联对象需加 */ width:31em;/* 何问起 hovertree.com */ word ...

  4. PHP.8-HTML+CSS(二)-HTML详解

    HTML+CSS HTML参考手册[http://www.w3school.com.cn/tags/index.asp] 0.HTML主体标记 代码分为三部分编写 <html> 是网页文件 ...

  5. jboss规则引擎KIE Drools 6.3.0 Final 教程(3)

    在前2部教程中,介绍了如何在本地运行.drools文件以及使用stateless的方法访问远程repository上的规则. KIE Drools还提供了一种叫有状态-stateful的访问方式. 运 ...

  6. UDK命令

    UDK命令行参数与控制台命令都是大小写不敏感的 命令行  udn中文  udn英文 全词大小写匹配,正则表达式,在c++代码中搜索减号开头的命令行参数(如:-BENCHMARK.-onethread等 ...

  7. 【WPF/C#】使用BackgroundWorker实现多线程/异步操作

    做WPF时需要做一个异步加载时的Loading遮罩,搜Stackoverflow看到很多方法,看到了这个插件: BusyIndicator in the extended WPF Toolkit 同时 ...

  8. .net 对称加密

    后台   public class CryptoHelper     {         // 对称加密算法提供器         private ICryptoTransform encryptor ...

  9. 安卓权威编程指南-笔记(第27章 broadcast intent)

    本章需求:首先,让应用轮询新结果并在有所发现时及时通知用户,即使用户重启设备后还没有打开过应用.其次,保证用户在使用应用时不出现新结果通知. 1. 一般intent和broadcast intent ...

随机推荐

  1. [后端人员耍前端系列]AngularJs篇:30分钟快速掌握AngularJs

    一.前言 对于前端系列,自然少不了AngularJs的介绍了.在前面文章中,我们介绍了如何使用KnockoutJs来打造一个单页面程序,后面一篇文章将介绍如何使用AngularJs的开发一个单页面应用 ...

  2. 设计模式之美:Memento(备忘录)

    索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Memento 模式结构样式代码. 别名 Token 意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这 ...

  3. 假期实践作业:从IT角度看地铁

    实习时间:2016/02/23——2016/02/26 实习地点:京港地铁14号线 实习报告: 大学四年过得真快,转眼就大三了,大学前两年半的生活可谓多姿多彩,从不懂计算机到对编程感兴趣,期待得最多的 ...

  4. 冲刺阶段day7

    day7 项目进展 又是一个周三,有轮到我写东西了.首先我们对昨天的成果调试了几遍,改了几个小Bug之后就没有什么问题了,完善了登录界面的代码,学生管理这部分终于被敲定下来,并且正式完工了.然后还生下 ...

  5. JavaScript函数编程-Ramdajs

    在JavaScript语言世界,函数是第一等公民.JavaScript函数是继承自Function的对象,函数能作另一个函数的参数或者返回值使用,这便形成了我们常说的高阶函数(或称函数对象).这就构成 ...

  6. [.net 面向对象编程基础] (4) 基础中的基础——数据类型转换

    [.net面向对象编程基础] (4)基础中的基础——数据类型转换 1.为什么要进行数据转换? 首先,为什么要进行数据转换,拿值类型例子说明一下, 比如:我们要把23角零钱,换成2.30元,就需要把整形 ...

  7. common-dbcp2数据库连接池参数说明

    参数 默认值 描述 建议值 DefaultAutoCommit  null 通过这个池创建连接的默认自动提交状态.如果不设置,则setAutoCommit 方法将不被调用.  true Default ...

  8. 三天学会HTML5 之第一天

    引言 HTML5 一直是非常热门的话题,因此此系列文章主要从一些基本功能开始讲起,逐步深入了解HTML5的新概念. 首先了解一些基本的术语和概念. SGML, HTML,XML三者之间的区别 Doc类 ...

  9. Lucene系列-索引文件

    本文介绍下lucene生成的索引有哪些文件组成,每个文件包含了什么信息.基于Lucene 4.10.0. 数据结构 索引(index)包含了存储的文档(document)正排.倒排信息,用于文本搜索. ...

  10. 当pageIndex遇上pageNo

    我们的项目程序里,由于赶项目进度,同时,大家缺乏相应的沟通,在服务层提供的接口里,涉及到分页查询的,有如下三种情形: l  List<OrderInfo> GetOrderList(Ord ...