You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC视图(CSHTML)中替换URL语言标识的正确方法

CSHTML视图中替换URL语言代码的正确方法

精准字符串替换法

直接针对当前请求路径做精准替换,避免误匹配其他包含目标语言代码的路径片段:

<a href="@Request.Path.ToString().Replace($"/{currentlanguage.code}/", $"/{item.code}/")">切换到希腊语</a>

这里用Request.Path获取当前路径部分(比如/en/Dashboard),通过给语言代码前后加斜杠的方式替换,能有效避免误改类似/enroll这类包含en的无关路径。

路由生成法(推荐)

利用ASP.NET的路由机制生成规范URL,比手动字符串替换更健壮,还能自动适配路由规则:
假设Dashboard页面对应HomeController的Dashboard动作,写法如下:

<a href="@Url.Action("Dashboard", "Home", new { culture = item.code })">切换到希腊语</a>

需要确保路由配置包含culture参数,示例路由配置:

routes.MapRoute(
    name: "Localized",
    url: "{culture}/{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    constraints: new { culture = @"[a-z]{2}" }
);

原始代码修正版

如果要沿用你提供的代码结构,先修正变量名拼写(currentlangugage多了一个u,应为currentlanguage),同时可以优化替换规则提升精准度:

<a href="@Url.Path.Replace($"/{currentlanguage.code}", $"/{item.code}")">切换到希腊语</a>

⚠️ 注意:这种方式会替换路径中所有匹配/en的片段,若存在重复匹配场景会出错,不如第一种方法可靠。

内容的提问来源于stack exchange,提问作者ruhatozcan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:42:50