自定义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: ...
随机推荐
- StackMapTable format error
环境:Oracle Java 7 , Mac OSX 报错如上图所示,主要是 Caused by: java.lang.ClassFormatError: StackMapTable format e ...
- .Net时间运算 - DateTime类,TimeSpan类
DateTime类是.Net中用于处理时间类型数据的. 一.字段 MaxValue 表示 DateTime 的最大可能值.此字段为只读. MinValue 表示 DateTime 的最小可能值 ...
- Blender 工具使用——显示键盘和鼠标操作
Blender 工具使用--显示键盘和鼠标操作 Blender自己本身就带有显示按键和鼠标的功能,就是3D View: Screencast Keys插件. 打开 File(文件) -> Use ...
- 算法Sedgewick第四版-第1章基础-009一链表与数组的比较及其他数据结构
1. 2.
- 21、conda下载,安装,卸载
参考:https://www.cnblogs.com/Datapotumas/p/6293309.html 1.下载 conda下载网址:https://conda.io/miniconda.html ...
- 100741A Queries
传送门 题目 Mathematicians are interesting (sometimes, I would say, even crazy) people. For example, my f ...
- Entity Framework Tutorial Basics(15):Querying with EDM
Querying with EDM: We have created EDM, DbContext, and entity classes in the previous sections. Here ...
- Linux下管理员强行踢出用户的命令使用方法
Linux强制踢出用户命令: 一.输入w命令查看已登录用户信息 [root@KW_S01_192.168.1.106_A ~]# w 19:22:31 up 2:11, 3 users, loa ...
- 【C#】 WebApi 路由机制剖析
C#进阶系列——WebApi 路由机制剖析:你准备好了吗? 转自:https://blog.csdn.net/wulex/article/details/71601478 2017年05月11日 10 ...
- NSNull空值
1.前言 作为占据空间的一个空值,如用在数组或字典中占据一个没有任何值的空间. 1.1 NULL & nil 的区别: nil 是 OC 的,空对象,地址指向空的对象,指针地址指向的是 NUL ...