公司效益好了,准备和国外做生意,这个时候就需要多语言了。

> 1. 这是一个ASP.NET Core Web多语言项目,主要展示项目的不同:
> 2. 第一种:www.xxx.com/en/index; www.xxx.com/zh/index; ,这种事通过路由来处理的
> 3. 第二种: www.xxx.com/index/en; www.xxx.com/index/zh ,这种可以用cookie保存,通过cookie来判断
> 4. 第三种:www.en.xxx.com; www.zh.xxx.com,这种方案就是发布两个项目,属于比较简单的,有多少种语言就发布多少种,上面的两种发布的是同一个版本的
> 5. 第一种,第三种一般用于两个项目差别比较大的情况,第二种一般用于项目只有内容不同,其他的都相同的情况

创建项目

新建一个ASP.NET Core Web项目,选择Web应用程序(模型视图控制器)

创建controller

创建一个EnController、ZhController、MoreController

  1. using Microsoft.AspNetCore.Mvc;
  2.  
  3. namespace MoreLanguage.Controllers
  4. {
  5. public class HomeController : Controller
  6. {
  7. public IActionResult Index()
  8. {
  9. return View();
  10. }
  11. }
  12. }
  1. using Microsoft.AspNetCore.Mvc;
  2.  
  3. namespace MoreLanguage.Controllers
  4. {
  5. public class EnController : Controller
  6. {
  7. public ActionResult Index()
  8. {
  9. return View();
  10. }
  11. }
  12. }
  1. using Microsoft.AspNetCore.Mvc;
  2.  
  3. namespace MoreLanguage.Controllers
  4. {
  5. public class ZhController : Controller
  6. {
  7. public ActionResult Index()
  8. {
  9. return View();
  10. }
  11. }
  12. }
  1. using Microsoft.AspNetCore.Mvc;
  2.  
  3. namespace MoreLanguage.Controllers
  4. {
  5. public class MoreController : Controller
  6. {
  7. public ActionResult Index(string lang)
  8. {
  9. ViewBag.lang = lang == "en" ? "Hello World!" :
  10. lang == "zh" ? "世界,你好!" : $"你的语言我不懂:{lang}";
  11. return View();
  12. }
  13. }
  14. }

创建对应的视图

  1. @{
  2. ViewData["Title"] = "Index";
  3. }
  4.  
  5. <h2>Hello World!</h2>

这里不再重复视图代码

修改Route

  1. //Startup.cs文件
  2. app.UseMvc(routes =>
  3. {
  4. routes.MapRoute(
  5. name: "more_route",
  6. template: "More/{action}/{lang}",
  7. defaults: new { controller = "More" });
  8.  
  9. routes.MapRoute(
  10. name: "default",
  11. template: "{controller=Home}/{action=Index}/{id?}");
  12. });

效果

不同的路由查看效果

https://localhost:44318/

https://localhost:44318/En

https://localhost:44318/Zh

https://localhost:44318/More/Index/en

https://localhost:44318/More/Index/zh

git地址

https://github.com/jasonhua95/samll-project/tree/master/MoreLanguage

ASP.NET Core Web多语言项目的更多相关文章

  1. asp.net core web 解决方案多项目模板制作打包总结

    一.文件夹\项目结构 1.1.文件夹 net6.0:针对.net 6.0 项目模板 net6.0pack:针对net6.0打包 1.2.项目结构 Web\WebApi多项目.各层项目.单元测试项目 目 ...

  2. ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇

    这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入支付宝-电脑网页支付接口及同步跳转及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET ...

  3. ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...

  4. Asp.Net Core Web应用程序—探索

    前言 作为一个Windows系统下的开发者,我对于Core的使用机会几乎为0,但是考虑到微软的战略规划,我觉得,Core还是有先了解起来的必要. 因为,目前微软已经搞出了两个框架了,一个是Net标准( ...

  5. ASP.NET Core Web App应用第三方Bootstrap模板

    引言 作为后端开发来说,前端表示玩不转,我们一般会选择套用一些开源的Bootstrap 模板主题来进行前端设计.那如何套用呢?今天就简单创建一个ASP.NET Core Web MVC 模板项目为例, ...

  6. 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...

  7. 【转载】ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇

    转自:http://www.cnblogs.com/essenroc/p/8627775.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入支付宝-电脑网页支付 ...

  8. Asp.Net Core Web Api 使用 Swagger 生成 api 说明文档

    最近使用 Asp.Net Core Web Api 开发项目服务端.Swagger 是最受欢迎的 REST APIs 文档生成工具之一,进入我的视野.以下为学习应用情况的整理. 一.Swagger 介 ...

  9. ASP.NET Core Web 支付功能接入 微信-扫码支付篇(转)

    原文 https://www.cnblogs.com/essenroc/p/8630730.html // 随着版本更迭,新版本可能无法完全适用,请参考仓库内的示例. 这篇文章将介绍ASP.NET C ...

随机推荐

  1. 使用阿里云Java SDK 实现 DDNS

    本代码的实现前提: 1.拥有阿里云域名,且获取了Access Key 及 Access Secret 2.能获取外网IP的页面地址(注意:ip138.com的实际包含ip地址为http://2018. ...

  2. Shiro简介——《跟我学Shiro》

    地址: http://jinnianshilongnian.iteye.com/blog/2018936

  3. HashTable源码简单介绍

    首先是继承了字典类Dictionary, 这说明HashTable的一些找位置的实现与Dictionary有关, 看一看数据结构,是一个entry数组, Entry,这个不陌生,先看一下它的结构吧,这 ...

  4. 团队第四次 # scrum meeting

    github 本此会议项目由PM召开,召开时间为4-8日晚上10点 召开时长15分钟 任务表格 袁勤 负责编写登陆逻辑 https://github.com/buaa-2016/phyweb/issu ...

  5. 在下载SOPC代码的过程中遇到的一些错误

    (1)Error (209015): Can't configure device. Expected JTAG ID code 0x02D120DD for device 2, but found ...

  6. C#对象与XMl文件之间的相互转换(转)

    本文是对C#中对象与XMl文件之间的相互转换进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 C#提供三种序列化方式,分别为:1.是使用BinaryFormatter进行串行化: 2.使 ...

  7. Python学习笔记---数 数据类型 运算

    python的四种数类型: 整数 int 浮点型 float 布尔 boolen 复数 complex >>> type(5)<class 'int'>>>& ...

  8. 回溯法 Generate Parentheses,第二次总结

    class Solution { public: vector<string> ans; void helper(string& cur, int left, int right, ...

  9. JS stacktrace(Node内存溢出)

    vscode运行项目时,保存.vue文件,项目突然终止运行.输入命令npm run dev重新运行后,终端显示下面的错误. 解决方案: 如果是run dev时报错,在package.json文件里的s ...

  10. 文本建模、文本分类相关开源项目推荐(Pytorch实现)

    Awesome-Repositories-for-Text-Modeling repo paper miracleyoo/DPCNN-TextCNN-Pytorch-Inception Deep Py ...