c# - 更改 URL 参数 MVC
问题描述
我有一个具有以下 URL 格式的 MVC 应用程序。
在哪里
- http://localhost:25825/ = 基本 URL
- en = 语言
- 应用程序 = URL 的其余部分
目前我有以下更改语言。
<ul>
<li><a href="~/en">@Resources.Global.LanguagesEnglish</a></li>
<li><a href="~/tr">@Resources.Global.LanguagesTurkish</a></li>
</ul>
但这样做会清除 URL 的其余部分并转到主页。有没有办法在保留 URL 的剩余部分的同时更改语言?
还有路线翻译
.ForController<ApplicationController>()
.ForAction(x => x.Index())
.AddTranslation("uygulamalar")
所以
变成
解决方案
那将是完全有道理的!您的 href 是您的应用程序的基础,您无需执行任何操作来获取当前页面或附加特定页面。
一个简单的 JS 方式是一个基于某些属性(甚至可能是数据属性)获取正确路径的函数:
function getLang(lang){
// this would be your URL and not just a console log
console.log("~/" + lang + window.location.pathname);
}
<ul>
<li><a href="#" onclick="getLang('en')">@Resources.Global.LanguagesEnglish</a></li>
<li><a href="#" onclick="getLang('tr')">@Resources.Global.LanguagesTurkish</a></li>
</ul>
您还提到了 MVC,因此在服务器上构建 URL 可能最有意义:
<ul>
@foreach(var resource in @Resources.Global.Where(x => x.Contains("Languages")).ToList())
{
<li><a href='@($"~/{resource}/applications")'>@resource</a></li>
}
</ul>
推荐阅读
- php - 突然间,我开始在我的 SugarCRM 实例上收到此错误。“出现错误”以下是第一个错误之前的页面呈现。
- parse-platform - 条件对象 ACL
- c# - 从数据表传递到控制器时,参数字符串为空
- c++ - zlib 压缩似乎通过 gunzip 解压缩,但不是 curl
- c# - 实施跨度
在统一 - jenkins - Jenkins 报告的 PNG 图像链接未在 IE11 浏览器中打开
- javascript - 如何将变量从模板 {{data}} 传递给 php 以进行分解
- python-3.x - 如何根据纪元时间获得前半部分和后半部分('attempt_updated_at' 列)
- android - 如何修复“BUILD FAILED” android react native 说错误:包 android.support.annotation 不存在
- video - ffmpeg concat demuxer 在加入视频时冻结我的视频帧