首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ASP.NET MVC中通过URL路由实现对多语言的支持

对于一个需要支持多语言的Web应用,一个很常见的使用方式就是通过请求地址来控制界面呈现所基于的语言文化,比如我们在表示请求地址的URL中将上语言文化代码(比如en或者en-US)来指导服务器应该采用怎样的语言来显示界面的内容...对于一个ASP.NET MVC应用来说,我们很容易通过URL路由来实现这样一个功能。[本文已经同步到《How ASP.NET MVC Works?》...在通过ASP.NET MVC项目模板创建的空Web应用中,我们创建了如下一个HomeController,默认的Action方法Index用于呈现一个登录View。...中,我们修改了默认添加的URL路由注册代码,使请求URL中包含相应的语言文化信息({culture})。...实际上针对URL路由的本地化可以通过具有如下定义的名为CultureAwareHttpModule的自定义HttpModule来实现。

1.7K60

使用DOT语言和GraphvizOnline来可视化你的ASP.NETCore3.0终结点01

使用有向图来可视化ASP.NET Core终结点 ASP.NETCore中的终结点路由系统通过创建端点URL段的有向图来有效地工作。然后将传入的请求与图进行匹配(一次一个段),以确定要执行的终结点。...在上面的DOT文件中,节点被赋予顺序的整数名,1, 2, 3等,并使用端点名称进行标记。这是ASP.NET Core用于表示终结点图的格式。 对于Razor页面,路由非常简单,所以图非常明显。...至于HTTP: *端点呢,它们会产生响应吗? 为了进一步了解,我查阅了可以生成这些图的ASP.NET Core中的代码 ,但它有点复杂,不幸的是,由于大量使用internal类。...URL段与图中的边进行增量匹配,并在图中遍历一条路径,直到整个请求URL匹配为止。 每个节点(由在ASP.NET Core中的DfaNode中)有几个属性。...在下一篇文章中,我将展示如何自动为自己的ASP.NET Core应用程序生成端点图。 总结 在这篇文章中,我介绍了用于描述图形的DOT语言,并展示了如何使用在线编辑从图表中创建图像。

2.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ASP.NET MVC5高级编程 ——(5)路由

    构造传出的URL,用来响应控制器操作。 ASP.NET MVC5中有:特性路由和传统路由。 ASP.NET MVC5中的路由机制图解: ?...此时,该默认情况就允许路由匹配没有action参数的请求。也就是现在既可以匹配具有一个段的URL,也可以匹配具有两个段的URL。...因为第二个段id是可选值,因此匹配的URL不再必须包含两个段。 2.传统路由 URL模式及模式匹配: URL模式是路由系统的核心,相当于表示URL的一个公式。...Url路由实例讲解1: ? Url路由实例讲解2: ? 生成输出URL的两种方法:在视图中生成(多数情况下)、在动作方法中生成。...在视图中生成输出URL: 在视图页面中通过调用ActionLink辅助器方法。 Eg:@Html.

    2.1K40

    ASP.NET Core3.X 终端中间件转换为端点路由运行

    路由的进阶 路由负责将请求 URI 映射到终结点并向这些终结点调度传入的请求。 路由在应用中定义,并在应用启动时进行配置。 路由可以选择从请求包含的 URL 中提取值,然后这些值便可用于处理请求。...通过使用应用中的路由信息,路由还能生成映射到终结点的 URL。 在ASP.NET Core 2.1和更低版本中,路由是通过实现将IRouter传入的URL映射到处理程序的接口来处理的。...如Map()在中间件管道中的扩展方法,将允许您在传入路径具有给定前缀时有条件地执行某些中间件。...但是从某种意义上说,整个Map分支对应于应用程序的“端点”. 在ASP.NET Core 2.2中,引入了终结点路由作为MVC控制器的新路由机制。...将中间件转换为端点路由 在ASP.NET Core 3.0中,我们使用端点路由,因此路由步骤与端点的调用是分开的。

    1.1K10

    如何在 ASP.NET Core 中重写 URL

    在ASP.NET中我们可以使用HttpContext.RewritePath方法,但在.NET Core中它并不存在。...这在实际项目中是很常见的,尤其是在已经存在了一段时间并且发生了一些变化的应用程序中。一个不太常见但可以说更有用的用例是用于呈现自定义内容工具的URL转换。...在ASP.NET Core中拦截URL 在ASP.NET Core中执行这个操作,最简单的方法是使用app.Use()内联中间件,可以将其添加到Startup.Configure()方法中。...因为它只对外部的、非应用程序URL有用。但是凡事都有特殊情况,当我们需要将重定向作为应用程序/控制器逻辑的一部分时,在这种情况下不能使用重写操作,因为路径已经路由到应用程序端点/控制器方法。...中的 URL 重写很简单,只需更改调用context.Request.PathURL即可重写,以路由到某些不同的端点。

    3.2K20

    微软发布ASP.NET Core 2.2,先睹为快。

    引入端点路由,在MVC中提高了20%的路由性能 使用LinkGenerator类改进URL生成并支持 路由参数变换器 (以及来自Scott Hanselman的帖子) 用于应用程序运行状况监视的New...即将推出 当我们宣布规划ASP.NET Core 2.2时,我们提到了许多上面没有详述的功能,包括使用IdentityServer4的API授权,Open API(Swagger)驱动的客户端代码生成以及...Azure App Service中的可用性 .NET Core 2.2 SDK,运行时和更新的ASP.NET核心IIS模块正在部署到全球的Azure App Service区域。...如果您使用进程内托管在.NET Core 2.2上运行ASP.NET Core应用程序,则只需在Azure门户中启用64位选项,该站点现在将以64位进程运行。...有关如何在Azure App Service中使用其他配置在64位进程中运行ASP.NET Core应用程序的其他信息,请参阅此文章。

    3.4K40

    .NET 8 Release Candidate 1 (RC1)现已发布,包括许多针对ASP.NET Core的重要改进!

    您可以在文档中找到完整的ASP.NET Core在.NET 8中的新功能列表[1]。一些领域(尤其是Blazor)仍然有一些重大的变更待完成,我们预计将在下一个.NET 8候选版本中完成这些变更。...我们之所以恢复到.NET 7的行为,是因为启用HTTP/3会导致某些防病毒软件在启动带有调试的应用程序时提示是否允许网络访问。...已知问题 ASP.NET Redis基于输出缓存 在ASP.NET中,基于Redis的输出缓存存在已知的回归问题(在.NET 8中首次引入,在Preview 6中宣布);此功能在RC1中将无法工作。...模板生成了两个组件:1. 在客户端项目中带有渲染模式属性的组件,2. 服务器项目中使用客户端组件的页面。这个解决方案是不必要的。可以在将其指令复制到客户端项目后,将服务器项目中的组件删除。...然后在Program.cs中调用Counter以便可以发现该组件。` 提供反馈 我们希望您喜欢在.NET 8中的ASP.NET Core的这个预览版本。

    33840

    .NET 6.0 中自定义接口路由

    前言 在本文中,我们将讨论ASP.NET Core中的新路由。我们将了解什么是接口(endpoints)路由,它是如何工作的,它在哪里使用,以及如何创建自己的路由。...只有MVC和Web API端点使用更复杂的模式。Razor页面的路由定义基于实际页面的文件夹和文件结构。 在ASP.NET Core 2.2中引入端点之前,路由只是运用在MVC和Web API中。...但是,端点路由是一种更灵活的输出方式,它应该会在ASP.NET Core 3.0以后的所有版本中进行使用。...在第8篇中,我们看到我们可以像这样的分支管道: app.Map("/map", mapped => { // …… }); 以上这种方式也会创建一个路由,但只会侦听以/map开头的URL。...然而,由于它们是在Program.cs中定义的,如果你想使用这种方式来实现更复杂的场景,代码维护性将变得很差。 因此,我们应该尝试找到一种更结构化的方法来创建自定义端点。

    28920

    ASP.NET Core 3.0 的新增功能

    必须在主机上生成和配置密钥表文件。 有关更多信息,请参见在 ASP.NET Core 中配置 Windows 身份验证。...在 3.0 中,AddEvironmentVariables 用于加载带有 DOTNET_ 以前追的环境变量,以使用 CreateDefaultBuilder 进行主机配置。...过滤器和特性 (attribute) 可以被放置在控制器的方法上。 有关更多信息,请参见 ASP.NET Core 中的路由。 运行状况检查 运行状况检查通过通用主机使用终结点路由。...在 Startup.Configure 中,使用终结点 URL 或者相对路径,在终结点构建器上调用 MapHealthChecks: app.UseEndpoints(endpoints => {...IIS 中改进了的错误报告 现在,在 IIS 中托管 ASP.NET Core 应用程序时的启动错误会生成更丰富的诊断数据。这些错误会在适用的情况下使用堆栈跟踪,报告给 Windows 事件日志。

    6.8K30

    从 MVC 到使用 ASP.NET Core 6.0 的Minimal API

    后来,在 ASP.NET Core 中,用于构建网站和 API 的单一框架,这些框架被统一到了 ASP.NET Core MVC 中。...定义路由和处理程序 MVC 在 MVC 中,我们有两种[2]定义路由的方法,一种是通过约定,一种是使用属性。 基于约定的路由更常用于网站而不是 API,并包含在mvc模板中。...在某些情况下,您可能希望从查询参数绑定复杂类型。我喜欢为具有多个过滤选项的搜索端点执行此操作。...在 ASP.NET Core 中,我们可以依靠现有的 HTTP 和路由基础结构来避免对 URI 组件进行硬编码。要生成到已知路线的链接,我们首先需要一种方法来识别它们。...还有一个出色的建议[6]是在传递方法组而不是内联 lambda 时隐式生成端点名称。

    7.6K10

    【译】.NET 7 预览版 1 中的 ASP.NET Core 更新

    这是 .NET 下一个主要版本的第一个预览版,其中将包括使用 ASP.NET Core 进行 Web 开发的下一波创新。 在 .NET 7 中,我们计划对 ASP.NET Core 进行广泛投资。...以下是我们计划重点关注的一些领域: 性能:.NET 6 包含对 ASP.NET Core 的许多性能改进,我们将努力使 ASP.NET Core 在 .NET 7 中更快、更高效。...在未来的预览版中,您可以期待在我们的 HTTP/3 支持中看到高级 TLS 功能和更多性能改进。 最小 API:添加对端点过滤器和路由分组的支持,作为最小 API 的核心原语。...增强的热重载支持。 数据绑定改进。 更灵活的预渲染。 更好地控制 Blazor 服务器电路的生命周期。 改进了对微前端的支持。 MVC:对端点路由、链接生成和参数绑定的改进。...在 ValidationAttribute 中使用依赖注入 更快的标头解析和写入 gRPC JSON 转码 开始使用 要开始使用 .NET 7 Preview 1 中的 ASP.NET Core,请安装

    4K10

    【ASP.NET Core 基础知识】--Web API--创建和配置Web API(一)

    三、配置路由和控制器 3.1 理解路由的基本概念 在Web API中,路由是决定如何将HTTP请求映射到控制器和操作方法的过程。理解Web API路由的基本概念对于构建和设计API端点是至关重要的。...路由生成(Link Generation): 在构建URL时,路由生成允许你以类型安全的方式引用API端点。...在视图、控制器或其他地方,你可以使用Url.Action或Url.RouteUrl等方法,这样你就不需要硬编码URL,而是依赖于路由模板和参数。...路由中间件: 在ASP.NET Core中,路由是通过路由中间件来处理的。路由中间件在HTTP请求到达控制器之前,负责解析URI并确定要执行的控制器和操作方法。...在ASP.NET Core Web API中,路由规则定义了如何映射HTTP请求的URI到相应的控制器和操作方法。

    1.1K00

    ASP.NET Core 各版本特性简单整理

    介绍 ASP.NET Core 是一个跨平台的高性能开源框架,用于生成启用云且连接 Internet 的新式应用。...使用 ASP.NET Core,您可以: 生成 Web 应用和服务、物联网 (IoT)应用和移动后端。 在 Windows、macOS 和 Linux 上使用喜爱的开发工具。 部署到云或本地。...Cookie写入不了就是因为开启了它) 集成测试 [ApiController], ActionResult(注:ApiController 特性自带了请求内容验证拦截,这个当初也是坑了不少人,就我自己而言在实际使用中是将它关闭的...根据请求提供事件计数器 增强了端点路由,可以让框架(例如 MVC)与中间件配合使用 ASP.NET Core 3.0 仅在 .NET Core 3.0 上运行(不再支持.NET Framework)...使用端点路由时的授权 Linux 上的 Kerberos 身份验证和 LDAP 的基于角色的访问控制 对 ASP.NET Core 项目运行 dotnet watch 将启动默认浏览器

    3.4K20

    ASP.NET Web API路由系统:路由系统的几个核心类型

    虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分(定义在程序集System.Web.Http.dll中)已经移除了对...也就是说,ASP.NET Web API核心框架的URL路由系统与ASP.NET本身的路由系统是相对独立的。...路由系统中,当我们调用Route的GetVirtualPath方法根据定义在路由本身的URL模板和指定的路由变量生成一个完整的URL的时候,在URL模板与提供的路由变量相匹配的情况下会返回一个VirtualPathData...通过对ASP.NET 路由系统的介绍我们知道URL路由具有两个“方向”上的应用,分别是匹配“入栈”请求并得到相应的路由数据,以及根据定义的路由规则和提供的路由变量生成“出栈”URL。...HttpRoute能够根据模板生成一个完整的URL取决于是否能够提供定义在URL模板中所有路由变量占位符的值,而这个路由变量值具有如下三个来源。

    9.5K110

    Blazor 中的路由和路由模板

    此评估算法基于 URL 中发现的段及其在字符串中的位置。例如,文本段比参数段更具体,因此具有更多路由约束的参数段被视为比存在更少约束的其他段更具体。...在 Blazor 中,URL 模式或路由模板被收集在路由表中。该表通过查看使用 Route 属性修饰的 Blazor 应用程序的组件进行填充。每个组件的路径都将成为受支持的路由模板。...例如,在 ASP.NET Core 中,开发人员可以通过以编程方式将路由添加到表中来显式定义路由,让系统使用默认路由约定或使用控制器方法上的属性来确定候选项。...在 ASP.NET 中,路由参数被分配给匹配的控制器方法的形参。在 Blazor 中,情况略有不同但具有可比性。...对于具有约束的路由,任何无法成功转换为指定类型的参数值都会使匹配失效,并且无法识别该路由。 更智能的链接和编程 URL 导航 在 Blazor 应用程序中,欢迎你使用定位标记来创建指向外部内容的链接。

    8.4K21

    Asp.net MVC 之 Contorllers(二)

    在 ASP.NET 4 Web Forms 最新版本中,可以使用 URL 路由将传入的 URLs 匹配其他 URLs 而不会产生 HTTP 302 重定向的消耗。...然而,在 ASP.NET MVC 中,URL 路由是把传入的 URL 映射到 Controller 类和 Action 方法为目的的。...通过指定动作行为和资源可以自定义语法,在 ASP.NET MVC 中默认行为是使用自定义语法的 URLs。该语法是以 URL 模式的集合作为表现形式,也称为路由。...占位符的名字(例如,action)是代码在实际 URL 中检索相应段的内容的关键。...现在,在大型应用程序中,甚至是在具有很强的REST特点的中型应用中,路由的数量可能相当可观,随随便便就会定义出上百个路由。可能很快就会发现,经典路由变得有些力不从心。

    1.9K60
    领券