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>
  • 相关阅读:
    UOJ#80. 二分图最大权匹配 模板
    BZOJ2243: [SDOI2011]染色
    LA5713 Qin Shi Huang's National Road System
    BZOJ1977: [BeiJing2010组队]次小生成树 Tree
    LA5009 Error Curves
    BZOJ1013: [JSOI2008]球形空间产生器sphere
    BZOJ2733: [HNOI2012]永无乡
    BZOJ1552: [Cerc2007]robotic sort
    BZOJ3223: Tyvj 1729 文艺平衡树
    网络流24题(24/24)
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/6475735.html
Copyright © 2011-2022 走看看