|
|
1
9
我就是这样做的。 ~~免责声明:psuedo代码~~
注意:控制器和/或操作不需要是第一个和第二个。事实上,它们根本不需要存在于
然后…
奖金建议
您还可以添加
Route Constraint
到您的路由,因此它只接受
(更多psedo代码)
意味着你可以这样做……
就在这里。) 我这样做是为了 版本控制 我的MVC API。 希望这有帮助。 |
|
|
2
7
好啊。。另一个建议。 为了让我明白,你要……
如果是这样的话…这个答案由三部分组成:
更新(基于评论)
所以,如果你想知道路线
我说过的事实
注释 : 秩序 你的路线很重要。非常重要。当您注册您的路线时,此路线需要是第一条路线(在igonoroute之后)中的一条(如果不是)。
.
我们走吧…(又是伪代码…)
然后我们把控制器装饰成这样:)
注意我是如何装饰的 班 …不仅仅是每个动作。这意味着类中的所有操作都将受到actionfilter()的影响。 另外,您可能希望在global.asax中添加一个不处理语言代码的新路由。硬编码默认值… 像(也未经测试)
这有帮助吗? |
|
3
4
我知道这是一个非常古老的问题,但我刚解决了一整套相关的问题,我想我会分享我的解决方案。 下面是一个完整的解决方案,包括一些额外的技巧,以便轻松地改变语言。它允许特定的文化,而不仅仅是特定的语言(但在本例中只保留语言部分)。 功能包括:
步骤1:在routeconfig中修改registerroutes
这个新的路由包含一个约束(如其他人建议的那样),以确保语言路由不会获取特定的标准路径。不需要默认语言值,因为所有这些值都由
步骤2:创建本地化属性这将在处理控制器请求之前查看它们,并根据URL、cookie或默认浏览器区域性更改当前区域性。
步骤3:对所有控制器应用本地化例如
步骤4:更改语言(例如从菜单)这是一个有点棘手的地方,需要一些解决办法。 向帐户控制器添加ChangeLanguage方法。这将从“上一个路径”中删除任何现有的语言代码,以使新语言生效。
步骤5:添加语言菜单链接菜单选项由指定为路由参数的新语言的链接组成。 例如(剃刀示例)
返回的URL是当前页面,经过编码后可以成为URL的ID参数。这意味着您需要启用某些转义序列,否则Razor将拒绝这些序列作为潜在的安全冲突。
注意:对于非Razor设置,您基本上需要一个具有新语言和当前页面相对URL的锚,路径如下:
其中language是新的区域性代码,existingurl是当前相对页面地址的urlencoded版本(以便我们返回到相同页面,并选择新语言)。 步骤6:在URL中启用某些“不安全”字符
返回URL所需的编码意味着您需要在
在web.config中,找到
在web.config中,找到
|
|
4
-1
你可以问
未经测试的代码。原谅我的VB |
|
|
Andrus · 如何在Linux中阅读期刊 1 年前 |
|
|
Miranda · 读取xml文件时路径错误中有非法字符 1 年前 |
|
|
Primdonm · 如何将自定义列表中的字符串值格式化为货币格式? 2 年前 |
|
|
Kiryl · Sitecore中自己的控制器 2 年前 |
|
|
Farid · 如何从数据库中填充Resource.resx文件值? 2 年前 |