自定义Razor 标签
1.首先需要一个abstract class WebViewPage<T> ,继承系统的 System.Web.Mvc.WebViewPage<TModel>
再定义一个WebViewPage 继承 自定义的WebViewPage<dynamic>
/// <summary>
/// 本地化转换
/// </summary>
/// <param name="text">文本</param>
/// <param name="args">参数</param>
/// <returns></returns>
public delegate IHtmlString Localizer(string text, params object[] args); /// <summary>
/// 自定义WebViewPage
/// </summary>
/// <typeparam name="TModel"></typeparam>
public abstract partial class WebViewPage<TModel> : System.Web.Mvc.WebViewPage<TModel>
{
/// <summary>
/// 本地化转换器
/// </summary>
private Localizer _localizer; /// <summary>
/// 获取转换后的转换器
/// </summary>
public Localizer T
{
get
{
if (_localizer == null)
{
_localizer = (format, args) =>
{
var resFormat = GetResource(format);
if (string.IsNullOrEmpty(resFormat))
{
return new HtmlString(format);
}
return
new HtmlString((args == null || args.Length == )
? resFormat
: string.Format(resFormat, args));
};
} return _localizer;
}
} /// <summary>
/// Layout
/// </summary>
public override string Layout
{
get
{
var layout = base.Layout;
return layout;
}
set
{
base.Layout = value;
}
} /// <summary>
/// 可以用数据库或者配置文件来替换
/// </summary>
private static Dictionary<string, string> Resource = new Dictionary<string, string>()
{
{"Save","保存"},
{"Add","新增"},
{"Edit","编辑"},
{"Delete","编辑"},
}; /// <summary>
/// 根据Key获取资源
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
private static string GetResource(string type)
{
if (Resource.ContainsKey(type))
return Resource[type];
return type;
}
} /// <summary>
/// WebViewPage
/// </summary>
public abstract class WebViewPage : WebViewPage<dynamic>
{
}
2.更改View下的 web.config(不是项目下的web.config)
<pages pageBaseType="MvcTest.Models.WebViewPage">
<!--<pages pageBaseType="System.Web.Mvc.WebViewPage">--><!--这是系统默认的,现在修改成上面的,注意命名空间-->
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
3.在View上调用
<button id="update" onclick="UpdateModel('Edit')">@T("Save")</button>
自定义Razor 标签的更多相关文章
- 使用自定义tld标签简化jsp的繁琐操作
最近做一个树形结构的展示,请求目标页面后,后台只返回简单的List,虽然有想过在jsp页面内做一些操作简化,但是太繁琐了,其他的标签又不能满足需求,所以只能自己做一个.使用tld标签可以简化jsp代码 ...
- excel 作图中次横坐标及次纵坐标的调试,以及excel自定义轴标签的步骤方法
在工作中除了要做一些常用的图表之外,不时还会有一切奇怪图表的制作需求. 今天的内容主要记录的是如何对excle图表的次横坐标及次纵坐标进行调试,以及如何自定义调整轴标签 首先看下如何做次纵坐标,工作中 ...
- 自定义JSP标签库及Properties使用
自定义JSP标签库及Properties使用 自定义JSP标签 自定义JSP标签技术是在JSP 1.1版本中才出现的,它支持用户在JSP文件中自定义标签,这样可以使JSP代码更加简洁. 这些可重用的标 ...
- 基于Spring的可扩展Schema进行开发自定义配置标签支持
一.背景 最近和朋友一起想开发一个类似alibaba dubbo的功能的工具,其中就用到了基于Spring的可扩展Schema进行开发自定义配置标签支持,通过上网查资料自己写了一个demo.今天在这里 ...
- 自定义JSTL标签和函数库
一.自定义JSTL标签 1.编写标签处理类: (1)实现 SimpleTag 接口,通过 setJspContext()方法可以获取到 jspContext 对象,实际上也是 pageContext ...
- (转)ThinkPHP自定义模板标签详解
转之--http://www.thinkphp.cn/topic/6258.html 模板标签让网站前台开发更加快速和简单,这让本该由程序猿才能完成的工作,现在只要稍懂得HTM的人也能轻易做到,这也就 ...
- 自定义函数标签(JSTL)
创建自定义函数标签步骤: 1.创建类,并且方法只能是静态 public static void operation(calculator cal) 2.书写tld <taglib xmlns=& ...
- Inno Setup技巧[界面]添加和自定义左下角标签
原文 http://blog.sina.com.cn/s/blog_5e3cc2f30100cc49.html 本文介绍添加和自定义“左下角标签”的方法. 界面预览: Setup技巧[界面]添加和自定 ...
- Java自定义简单标签
Java自定义简单标签可以方便的在页面输出信息,并且对于权限的控制,和对于Jsp标签和servlet代码的分离有着很好的作用. 下面将以权限的控制为例自定义一个标签: 一.标签类型 <wxt: ...
随机推荐
- java中的面向对象的三大基本特征
转载,原文来自http://blog.sina.com.cn/s/blog_5f79a56a0100c6ig.html 众所周知,java中的面向对象的三大基本特征是:[封装].[继承].[多态] 一 ...
- oracle语法练习汇总
全是自己一个一个敲出来的啊 啊 啊 --(1)查询20号部门的所有员工信息. --(2)查询所有工种为CLERK的员工的工号.员工名和部门名. select e.empno,e.ename,d.dna ...
- POJ 1741 点分治
方法:指针扫描数组 每次选择树的重心作为树根,从树根出发进行一次DFS,求出点到树根的距离,把节点按照与树根的的距离放进数组d,设置两个指针L,R分别从前.后开始扫描,每次满足条件时答案累加R-L., ...
- centos 端口iptables配置
1.安装iptables yum install iptables* -y 2.打开端口 iptables -I INPUT -p tcp --dport -j ACCEPT 3.查看本机关于IPTA ...
- cmake中设置ELF文件加载动态库的位置
1. 三个文件 1. world.c #include<stdio.h> void world(void) { printf("world.\n"); } 2. hel ...
- Java-马士兵设计模式学习笔记-工厂模式-模拟Spring读取Properties文件
一.目标:读取properties文件,获得类名来生成对象 二.类 1.Movable.java public interface Movable { void run(); } 2.Car.java ...
- CF 959E Mahmoud and Ehab and the xor-MST
第一反应是打表找规律……(写了个prim)但是太菜了没找到 于是开始怀疑是不是我的表错了,又写了一个克鲁斯卡尔,然后结果是一样的……(捂脸) 后来从克鲁斯卡尔的算法上发现了一点东西,发现只有2的幂次长 ...
- java线程安全的元素
集合类: Vector Stack HashTable enumeration 字符串: StringBuffer
- Java并发之FutureTask
FutureTask实现了Runnable和Future接口,是一个可取消的异步任务.利用开始和取消计算的方法.查询计算是否完成的方法和获取计算结果的方法,此类提供了对 Future 的基本实现.仅在 ...
- 发现C#winform编程中不常用的控件(一)<FlowLayoutPanel控件><拆分器控件Splitcontainer >
第一部分:FlowLayoutPanel控件 实现效果: 将FlowLayoutPanel做为导航菜单按钮的容器 以实现 某个菜单按钮不显示时 整体的导航菜单布局不至于"缺憾" 原 ...