asp.net core mvc中哪些把二级域名绑定到特定的控制器上

  在asp.net core
mvc中有路由规则配置,配置的地点在Startup.Configure方法中,具体代码如下:

俺们一贯说道不会考究平仄,达意即可,但书面上的文字是一种固定的管艺术学甚或艺术小说,失了音律便会失去一半的魅力。我一贯以为,好的文字小说是可以诵读的,诗词即便,作品也不例外,像那样四字四字整治的口号尤甚。写小编最好能粗通一点格律皮毛,多读一些好好的杂谈,自然就能发现,为啥有的小说行云流水,更加美,有的却不堪卒读,更加扭。

  从地方的代码大家只见到了域名检测,不过怎么把域名定向到一定的控制器上,那就须求大家在登记这么些IRouter的时候做些文章,直接上代码:

除却写作,平日中另一个只能够顾格律的地点是起名,尤其是三字的姓名,平仄相间才会不尽如人意。有些名字拗口,极有可能是全仄或全平的原因,前者叫不洪亮,后者直如念经。

  遗憾的是不辅助对域名的支持(我当下打探的是,若是有标题,欢迎大家指正)。通过routes.MapRouter注册路由规则,并参与到RouteCollection中,当某个请求过来后,RouterCollection循环所有注册好的IRouter对象,找到第二个门当户对的IRouter停止。即便框架不协理域名配置规则,但是大家得以友善去落成一个IRouter,在其中落成二级域名判断的逻辑,我那边暂时起名为SubDomainRouter,具体落到实处代码如下:

「源于创作,不止遇见」,多少个短语均为仄尾,而且都是去声,发音上双双往下掉,没有一个平声把音律拉起来,失了平衡。就像话只说了大体上,念得憋屈。

  应用场景:公司门户网站会基于情节不一,设置分歧的板块,如天涯论坛有体育,娱乐频道,等等。有的景况下必要给差异的板块设置不相同的二级域名,如微博体育sports.sina.com.cn。

咱俩不需求写到格律诗那样严俊的品位,但最少做好平仄相间。诗家有一避讳,乃三平尾、三仄尾,即句子的终极三字都是平声或仄声,读起来最好拗口。在句中,也应幸免三字以上的连平或连仄。而简书的新标语中
,「不止遇见」竟是接连多少个仄声,那是它拗口最大的由来。

  由于店铺的办事安顿,平昔在切磋其他技术,所以一向没时间更新博客,后天终于可以告一段落手边的事务,写一些新内容了。

普通话之美离不开音律。现今的国语有「ˉˊˇˋ」多少个声调,称为阴平、阳平、上声、去声,格律诗讲究平仄,前两声为平,后两声为仄,平仄相间,恰能发生抑扬顿挫的音律美。

  达成格局也许不是最好的,但是曾经满足了骨干须要,即使我们有更好的方式,欢迎切磋交换。

对联也是那般写的,上联尾字为仄,下联尾字为平,一句抑促,一句悠扬。所以当您赶上乍一看古风十足的对联,假使前后联结尾同平或同仄,不用分析其他部分,就能看清一定是个门外汉在瞎卖弄了。

  

诗歌格律是千百年来古人智慧的名堂,即使古今中文在句式结构上都早已大不一样,白话文也提高出一些独属的美学,但格律如故适用,越发在双双、排比的句式中。

  

拿最简单易行的五绝来讲,有如下两个宗旨句式:

  

本身入门不深,习惯直接选用今声韵。现在我们都用中文,古音写的诗句读来反而拗口。如是可惜,对老祖宗探讨出来的学问瑰宝,我们只能以管窥天。好就好在,即便使用现在的失声,只要按着古人留下的格律规则去填,任哪个人写出来的诗句都能朗朗上口,那是古人的小聪明,是华语之美。

  在asp.net core
mvc中,如果要贯彻板块的法力,可能会给分化的板块建立分裂的控制器(当然也有任何的技艺,那里不啄磨完结形式的上下),在那种意况下,如何给控制器绑定上独有的二级域名,比如体育频道对应的控制器叫SportController,通过sports.XXX.com域名访问系统的时候,直接进去SportController,并且通过这一个二级域名不能够访问其他的控制器。

野旷天低树,江清月近人。

仄仄平平仄,平平仄仄平。

public static class RouteBuilderExtensions
    {
        public static IRouteBuilder MapDomainRoute(
            this IRouteBuilder routeBuilder,string domain,string area,string controller)
        {
            if(string.IsNullOrEmpty(area)||string.IsNullOrEmpty(controller))
            {
                throw new ArgumentNullException("area or controller can not be null");
            }
            var inlineConstraintResolver = routeBuilder
                .ServiceProvider
                .GetRequiredService<IInlineConstraintResolver>();

                string template = "";

                    RouteValueDictionary defaults = new RouteValueDictionary();
                    RouteValueDictionary constrains = new RouteValueDictionary();
                    constrains.Add("area", area);
                    defaults.Add("area", area);
                    constrains.Add("controller", controller);
                    defaults.Add("controller", string.IsNullOrEmpty(controller) ? "home" : controller);
                    defaults.Add("action", "index");

                    template += "{action}/{id?}";//路径规则中不再包含控制器信息,但是上面通过constrains限定了查找时所要求的控制器名称
                    routeBuilder.Routes.Add(new SubDomainRouter(routeBuilder.DefaultHandler, domain, template, defaults, constrains, inlineConstraintResolver));


            return routeBuilder;
        }
}

云对雨,雪对风,晚照对晴空。来鸿对去燕,宿鸟对鸣虫。三尺剑,六钧弓,岭北对江东。人间清暑殿,天上广寒宫。两岸晓烟杨柳绿,一园春雨杏花红。两鬓风霜,途次早行之客;一蓑烟雨,溪边晚钓之翁。

app.UseMvc(routes =>
{
      routes.MapRoute(
           name: "default",
           template: "{controller=Home}/{action=Index}/{id?}",
           defaults: new { area="admin"});
});

这一次的口号是简叔在私密群里头脑沙尘暴的结果,是一个与简书当前定位周全契合的口号。我开场不太上心,后来心里默念,却越读越不顺口,因着偶尔会写些小诗,发现真正在音律上出了难点。

  上边说完场景了,下边来看下怎么样促成。

你会发觉,它们不仅平仄相间,而且两两平仄绝对,在音律上就高达了双双的功力。举个例子,孟山人的诗句:

  

理所当然许多有后天的写作者不须要特地去学,无意间已经有了平仄的语感,那跟有人天生擅长唱歌、富有乐感大抵是一个道理。

  public class SubDomainRouter : RouteBase
    {
        private readonly IRouter _target;
        private readonly string _subDomain;
        public SubDomainRouter(
           IRouter target,
           string subDomain,//当前路由规则绑定的二级域名
           string routeTemplate,
           RouteValueDictionary defaults,
           RouteValueDictionary constrains,
           IInlineConstraintResolver inlineConstraintResolver)
           : base(routeTemplate,
                  subDomain,
                  inlineConstraintResolver,
                  defaults,
                  constrains,
                  new RouteValueDictionary(null))
        {
            if (target == null)
            {
                throw new ArgumentNullException(nameof(target));
            }
            if (subDomain == null)
            {
                throw new ArgumentNullException(nameof(subDomain));
            }
            _subDomain = subDomain;
            _target = target;
        }
        public override Task RouteAsync(RouteContext context)
        {
            string domain = context.HttpContext.Request.Host.Host;//获取当前请求域名,然后跟_subDomain比较,如果不想等,直接忽略

            if (string.IsNullOrEmpty(domain) || string.Compare(_subDomain, domain) != 0)
            {
                return Task.CompletedTask;
            }
        
       //如果域名匹配,再去验证访问路径是否匹配

            return base.RouteAsync(context);

        }

        protected override Task OnRouteMatched(RouteContext context)
        {
            context.RouteData.Routers.Add(_target);
            return _target.RouteAsync(context);
        }

        protected override VirtualPathData OnVirtualPathGenerated(VirtualPathContext context)
        {
            return _target.GetVirtualPath(context);
        }
    }

2017年4月14日 无锡

  最后大家就能够在Startup中注册对应的规则,如下:

读一读那个赏心悦目的成语吧:花香鸟语、姹紫嫣红、鸟语花香、桃红柳绿……平仄之形成,为之侧目不已。其实古人造字造音早就排好了平仄,大家只要稍作留心,就能接纳得当。我纪念《声律启蒙》,作为入门读物,本身也是金榜题名的杂谈范本,闲来无事翻开它,迎鼻一股文墨清香:

app.UseMvc(
      routes =>
        {
            routes.MapDomainRoute("xxx.domain.com","areaname","controllername");

            routes.MapRoute(
                  name: "default",
                  template: "{controller=Home}/{action=Index}/{id?}",
                  defaults: new { area = "web" });
        });

多美。

古时汉字的失声与今分裂,有阴平、阳平、上、去、入五声,近来不简单是少了入声,其他四声也拥有变化,所以大家有时读古人的格律诗,也会觉得别别扭扭,甚至不押韵。由此现在一大半正儿八经写格律诗或词的作者,会拔取古人的失声,一则体现正统,二则音律自然就看中。

仄仄平平仄

平平仄仄平

平平平仄仄

仄仄仄平平

前句「源于创作」是平平仄仄,后句最佳的格式是仄仄平平,比如「不止相识」。当然那是自我随口拈来的例子,如何达(英文名:hé dá)意另当别论。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图