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 标签的更多相关文章

  1. 使用自定义tld标签简化jsp的繁琐操作

    最近做一个树形结构的展示,请求目标页面后,后台只返回简单的List,虽然有想过在jsp页面内做一些操作简化,但是太繁琐了,其他的标签又不能满足需求,所以只能自己做一个.使用tld标签可以简化jsp代码 ...

  2. excel 作图中次横坐标及次纵坐标的调试,以及excel自定义轴标签的步骤方法

    在工作中除了要做一些常用的图表之外,不时还会有一切奇怪图表的制作需求. 今天的内容主要记录的是如何对excle图表的次横坐标及次纵坐标进行调试,以及如何自定义调整轴标签 首先看下如何做次纵坐标,工作中 ...

  3. 自定义JSP标签库及Properties使用

    自定义JSP标签库及Properties使用 自定义JSP标签 自定义JSP标签技术是在JSP 1.1版本中才出现的,它支持用户在JSP文件中自定义标签,这样可以使JSP代码更加简洁. 这些可重用的标 ...

  4. 基于Spring的可扩展Schema进行开发自定义配置标签支持

    一.背景 最近和朋友一起想开发一个类似alibaba dubbo的功能的工具,其中就用到了基于Spring的可扩展Schema进行开发自定义配置标签支持,通过上网查资料自己写了一个demo.今天在这里 ...

  5. 自定义JSTL标签和函数库

    一.自定义JSTL标签 1.编写标签处理类: (1)实现 SimpleTag 接口,通过 setJspContext()方法可以获取到 jspContext 对象,实际上也是 pageContext ...

  6. (转)ThinkPHP自定义模板标签详解

    转之--http://www.thinkphp.cn/topic/6258.html 模板标签让网站前台开发更加快速和简单,这让本该由程序猿才能完成的工作,现在只要稍懂得HTM的人也能轻易做到,这也就 ...

  7. 自定义函数标签(JSTL)

    创建自定义函数标签步骤: 1.创建类,并且方法只能是静态 public static void operation(calculator cal) 2.书写tld <taglib xmlns=& ...

  8. Inno Setup技巧[界面]添加和自定义左下角标签

    原文 http://blog.sina.com.cn/s/blog_5e3cc2f30100cc49.html 本文介绍添加和自定义“左下角标签”的方法. 界面预览: Setup技巧[界面]添加和自定 ...

  9. Java自定义简单标签

     Java自定义简单标签可以方便的在页面输出信息,并且对于权限的控制,和对于Jsp标签和servlet代码的分离有着很好的作用. 下面将以权限的控制为例自定义一个标签: 一.标签类型 <wxt: ...

随机推荐

  1. Developer tools

    20. Developer tools Spring Boot includes an additional set of tools that can make the application de ...

  2. css知多少(11)——position(转)

    css知多少(11)——position   1. 引言 本文将用一篇文章介绍position(定位),在学习position之前,我们应该去思考一个问题:什么情况下我们需要定位?如果没有定位将无法满 ...

  3. String/StringBuilder 类 判断QQ号码

    1.1. 训练描述:[方法.String类]  一.需求说明:请用户输入一个“QQ号码”,我们来判断这个QQ号码是否正确. 要求:使用方法来完成判断功能. 1.2. 操作步骤描述 建立MainApp类 ...

  4. 如何将.jpg图片 转换成.eps 格式图片

    在使用latex写作论文的时候,需要插入一些图片,但是往往有些图片不是eps格式的.虽然网上有如何插入jpg格式的图片方法,但是经过我实验后发现都不太管用.最后找到一个比较靠谱的方法,使用latx本身 ...

  5. 除了ROS ,机器人自主定位导航还能怎么做?

    博客转载自:https://www.leiphone.com/news/201609/10QD7yp7JFV9H9Ni.html 雷锋网(公众号:雷锋网)按:本文作者科技剪刀手,思岚科技技术顾问. 随 ...

  6. ZROI2018提高day4t3

    传送门 分析 我们假设如果一个点是0则它的值为-1,如果一个点是1则值为1,则一个区间的答案便是max(pre[i]+sur[i]),这里的pre[i]表示此区间i点和它之前的的前缀的最大值,sur[ ...

  7. js获取指定小时日期格式化

    不得不感叹一下,聪明的程序员写的代码真是让人惊奇 找了一圈格式化代码的方式,下面的这个使用了一个 slice 函数,真是厉害 https://stackoverflow.com/questions/4 ...

  8. serializeArray()和.serialize()的区别、联系

    serializeArray()和.serialize()的区别.联系   <form id='addForm' action='UserAdd.action' type='post'> ...

  9. Java50道经典习题-程序40 字符串排序

    题目:根据字符串内字符的ASCII码值对字符串数组进行排序.分析:字符串用ASCII码比较大小,规则是:1.比较首字母的ASCII码大小2.若是前面的字母相同,则比较之后的字母的ASCII码值3.若是 ...

  10. .NET 一般处理程序使用Session

    .ashx中引用 session必须 using System.Web.SessionState ,继承IReadOnlySessionState/IRequiresSessionState IRea ...