https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.1

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-2.1

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-2.1

这三篇已经有 step by step 的方式了,这里记入一下观点就好了。

1. route 最重要的 2 个功能是

-request url 匹配到 route 然后找出 controller 来处理请求

-反过来通过 controller 匹配 route 生产出 request url

一般上我们 2 个都会用上.

2. route Conventional vs route Attribute

conventional 用于 html page 比较好用, attribute 用于 web api 比较好用

不推荐乱乱用...

3. 常用的 controller + action = page

除了 layout 外, 一般上一个 design 我们算一个 page

通常用 1 route + 1 controller + 1 action 来 handler.

比如 about + AboutController + Index

如果是 services page 又很多的话

通常是 services + ServiceController + Index 表示所有 service

然后 services/service-a + ServiceController + ServiceA 来代表某个 service

如果是链接数据的, services/{serviceUrlTitle} + ServiceController + Detail 来表示

语言

refer :

https://searchengineland.com/the-ultimate-guide-to-multilingual-and-multiregional-seo-157838

https://angular.io/guide/i18n

https://support.google.com/webmasters/answer/189077?hl=en

https://www.seozac.com/en-seo/hreflang-tag/

1. 使用 path 来表示语言

www.domain.com/zh-Hans/about-us

path 的好处是容易 maintain, 性价比高,如果是 SEO 的话,自然是弄一个 domain.cn 更好..

2. zh-Hans or zh-CN ?

CN 是区域, zh 是中文, Hans 是 language script 简体. Hant 是繁体

所以 zh-Hans 或 zh-Hans-CN 才正确.

古时候 zh-CN 表示简体, zh-TW 表示繁体,错误的用区域来表达 script 了.

3. google seo 的语言是 ISO 639-1 format, script 是 ISO 15924 区域我没有做所以不管 (上面 refer 里有)

seo 做语言要写 alternate,

如果还做区域的话要写 continental

比如 en-US 和 en-GB 是很像的, 只有一些类似 color 和 colour 的区别而已。

SEO 会以为是重复内容的。

4. asp.net core 的流程是, 有一个 request middle 拦截 request 后会从 request 里推测出请求的语言是什么

可以从 cookies, header, queryparams, path 等等. 然后整个访问 scope 里我们就可以通过依赖注入获取到 locale 了.

翻译和 datetime tostring 都会依据这个做处理哦。

Asp.net core (学习笔记 路由和语言 route & language)的更多相关文章

  1. Asp.net Core学习笔记

    之前记在github上的,现在搬运过来 变化还是很大的,感觉和Nodejs有点类似,比如中间件的使用 ,努力学习ing... 优点 不依赖IIS 开源和跨平台 中间件支持 性能优化 无所不在的依赖注入 ...

  2. Asp.net core 学习笔记 ( Data protection )

    参考 : http://www.cnblogs.com/xishuai/p/aspnet-5-identity-part-one.html http://cnblogs.com/xishuai/p/a ...

  3. Asp.net core 学习笔记 SignalR

    refer : https://kimsereyblog.blogspot.com/2018/07/signalr-with-asp-net-core.html https://github.com/ ...

  4. Asp.net core 学习笔记 (授权)

    更新 : 2018-11-24 记入一些思考 asp.net core + identity 的权限是这样的 user = 1 个登入账号 role = 1 个角色 (类似于公司里的一个职位) cla ...

  5. Asp.net core 学习笔记 ( identity server 4 JWT Part )

    更新 : id4 使用这个 DbContext 哦 dotnet ef migrations add identity-server-init --context PersistedGrantDbCo ...

  6. Asp.net core 学习笔记 ( Web Api )

    asp.net core 把之前的 webapi 和 mvc 做了结合. mvc 既是 api. 但是后呢,又发现, api 确实有独到之处,所以又开了一些补助的方法. namespace Proje ...

  7. Asp.net core 学习笔记 ( IIS, static file 性能优化 )

    更新 : 2019-02-06 最后还是把 rewrite 给替换掉了. 所以 rewrite url 也不依赖 iis 了咯. refer : https://docs.microsoft.com/ ...

  8. Asp.net core 学习笔记 ( Area and Feature folder structure 文件结构 )

    2017-09-22 refer : https://msdn.microsoft.com/en-us/magazine/mt763233.aspx?f=255&MSPPError=-2147 ...

  9. Asp.net core 学习笔记 QR code and Barcode

    QR code 和 Barcode 经常会使用到. Java 阵营有著名的 zxing https://github.com/zxing/zxing .Net 有对接它的 port https://g ...

随机推荐

  1. React在开发中的常用结构以及功能详解

    一.React什么算法,什么虚拟DOM,什么核心内容网上一大堆,请自行google. 但是能把算法说清楚,虚拟DOM说清楚的聊聊无几.对开发又没卵用,还不如来点干货看看咋用. 二.结构如下: impo ...

  2. mybatis单个插入和批量插入的简单比较

    在J2EE项目中,mybatis作为主流持久层框架,许多知识值得我们去钻研学习,今天,记录一下数据插入性能(单个插入和批量插入). 一,测试对象 public class Test { private ...

  3. php 建立类POST/GET 的HTTP请求

    1.第一种利用fsock的方式来建立类POST的请求. <?php $srv_ip = '192.168.1.5';//你的目标服务地址. $srv_port = 80;//端口 $url = ...

  4. JBPM4中常用概念总结

    1. 流程定义(Process Definition)    流程定义是记录在xml文件中的对流程的描述,它包含唯一的流程开始节点和多个流程功能节点,每个节点之间使用transition进行连接. P ...

  5. 利用c语言做简单的迷宫小游戏

                       #include <stdio.h> #define ROW 6 #define COL 6 // 封装打印地图的函数 void printMap(c ...

  6. Wix - 教程

    1. 不错的教程 http://www.merlinia.com/mdt/WiXTutorial4.msl 2.

  7. 什么是Angular JS?

    Angular JS学习笔记——什么是Angular JS? Angular JS是一个由Google维护的开源的Javascript框架,主要作者为: Misko Hevery(angular JS ...

  8. 阿里云上给的防止跨站和xss攻击的代码

    文档说明: 1.将waf.php传到要包含的文件的目录 2.在页面中加入防护,有两种做法,根据情况二选一即可: a).在所需要防护的页面加入代码require_once('waf.php');就可以做 ...

  9. curl通过调用WebService查询当前天气

    <?php /** * curl通过调用WebService查询北京的当前天气 */ header("Content-type: text/html; charset=utf-8&qu ...

  10. SQLServer之创建DML AFTER INSERT触发器

    DML AFTER INSERT触发器创建原理 触发器触发时,系统自动在内存中创建deleted表或inserted表,内存中创建的表只读,不允许修改,触发器执行完成后,自动删除. insert触发器 ...