ASP.NET Core Web多语言项目
公司效益好了,准备和国外做生意,这个时候就需要多语言了。
> 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
using Microsoft.AspNetCore.Mvc; namespace MoreLanguage.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
}
using Microsoft.AspNetCore.Mvc; namespace MoreLanguage.Controllers
{
public class EnController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
using Microsoft.AspNetCore.Mvc; namespace MoreLanguage.Controllers
{
public class ZhController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
using Microsoft.AspNetCore.Mvc; namespace MoreLanguage.Controllers
{
public class MoreController : Controller
{
public ActionResult Index(string lang)
{
ViewBag.lang = lang == "en" ? "Hello World!" :
lang == "zh" ? "世界,你好!" : $"你的语言我不懂:{lang}";
return View();
}
}
}
创建对应的视图
@{
ViewData["Title"] = "Index";
}
<h2>Hello World!</h2>
这里不再重复视图代码
修改Route
//Startup.cs文件
app.UseMvc(routes =>
{
routes.MapRoute(
name: "more_route",
template: "More/{action}/{lang}",
defaults: new { controller = "More" }); routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
效果

不同的路由查看效果
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多语言项目的更多相关文章
- asp.net core web 解决方案多项目模板制作打包总结
一.文件夹\项目结构 1.1.文件夹 net6.0:针对.net 6.0 项目模板 net6.0pack:针对net6.0打包 1.2.项目结构 Web\WebApi多项目.各层项目.单元测试项目 目 ...
- ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇
这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入支付宝-电脑网页支付接口及同步跳转及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET ...
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇
这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...
- Asp.Net Core Web应用程序—探索
前言 作为一个Windows系统下的开发者,我对于Core的使用机会几乎为0,但是考虑到微软的战略规划,我觉得,Core还是有先了解起来的必要. 因为,目前微软已经搞出了两个框架了,一个是Net标准( ...
- ASP.NET Core Web App应用第三方Bootstrap模板
引言 作为后端开发来说,前端表示玩不转,我们一般会选择套用一些开源的Bootstrap 模板主题来进行前端设计.那如何套用呢?今天就简单创建一个ASP.NET Core Web MVC 模板项目为例, ...
- 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇
转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...
- 【转载】ASP.NET Core Web 支付功能接入 支付宝-电脑网页支付篇
转自:http://www.cnblogs.com/essenroc/p/8627775.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入支付宝-电脑网页支付 ...
- Asp.Net Core Web Api 使用 Swagger 生成 api 说明文档
最近使用 Asp.Net Core Web Api 开发项目服务端.Swagger 是最受欢迎的 REST APIs 文档生成工具之一,进入我的视野.以下为学习应用情况的整理. 一.Swagger 介 ...
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇(转)
原文 https://www.cnblogs.com/essenroc/p/8630730.html // 随着版本更迭,新版本可能无法完全适用,请参考仓库内的示例. 这篇文章将介绍ASP.NET C ...
随机推荐
- windows2008 apache2.4 tomcat-7多域名绑定环境配置
=====================软件清单Apache2.4.33apache-tomcat-7.0.85===================== 1.安装apache 1.1下载ap ...
- SDWebImageRefreshCached
来源: http://blog.csdn.net/jiadabin/article/details/52129789 来源: http://blog.csdn.net/jiadabin/article ...
- 网易云和QQ音乐api
最近有点闲,听歌的时候遇见好听的想下载却遇到尴尬的事,版权!唉,知道我干什么了吧 网易云音乐 获取排行榜中的歌曲列表 https://music.163.com/discover/toplist?id ...
- 使用Autoencoder进行降维
#coding=utf-8import tensorflow as tf import matplotlib.pyplot as plt from tensorflow.examples.tutori ...
- DLC 基本逻辑运算
逻辑代数:分析设计数字电路的数学基础是逻辑代数 变量的取值只能是 0 1 逻辑代数中只有三种基本逻辑运算,即 与 或 非 与逻辑运算: 只有决定一件事情的全部条件都具备时,这事件才成立.这样的因果关系 ...
- MSMQ 队列消息和死信队列
日志消息 日志队列可以保存你操作过的消息的备份.它的好处是,一但发现前面的操作失败,可以从日志队列中重新创建出原先的消息对象,然后再进行操作. 例如,向远方发送一个消息对象,然后对方返回一个失败的确认 ...
- 李清华201772020113《面向对象程序设计(java)》第十三周学习总结
1.实验目的与要求 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作机制: (3) 掌握事件处理的基本编程模型: (4) 了解GUI界面组件观感设置方法: (5) 掌握W ...
- 15Linux_DHCP_Postfix_Dovecot_LDAP
DHCP_ Postfix_ Dovecot_ LDAP
- 模块(modue)和包(package)的概念-import导入模块
模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较 ...
- R语言输出高质量图片
Rstudio画图之后保存的 图片格式如下 上面的几种格式可以直接插入word文档中,但是图片质量很低,锯齿感很明显.若生成PDF,为矢量图(不懂),但是不可以插入word文档中. 最简便的方法就是对 ...