自定义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 == 0)
                                                    ? 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" οnclick="UpdateModel('Edit')">@T("Save")</button>

 

转载于:https://www.cnblogs.com/zhshlimi/p/6475735.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值