zoukankan      html  css  js  c++  java
  • 自定义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" onclick="UpdateModel('Edit')">@T("Save")</button>
  • 相关阅读:
    分享一个安装PE到硬盘的软件
    [转]盘点谷歌旗下的那些逆天机器人(视频)
    ubuntu安装google 输入法
    Beyond Compare 3.3.8 build 16340 + Key
    don't panic !
    Python3 list sort排序
    《操作系统、预防进程死锁的银行家算法》
    《操作系统_时间片轮转RR进程调度算法》
    《操作系统_FCFS和SJF》
    Hive初步使用、安装MySQL 、Hive配置MetaStore、配置Hive日志《二》
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/6475735.html
Copyright © 2011-2022 走看看