【发布时间】:2018-12-15 18:12:15
【问题描述】:
在 _Layout.cshtml 我有更改应用程序语言的菜单,例如:
<nav id="nav-lang">
<ul>
<li>
<a href="?culture=en-EN">EN</a>
</li>
<li>
<a href="?culture=pl-PL">PL</a>
</li>
</ul>
</nav>
它所做的是重新加载页面并设置新的文化 - 效果很好。问题是,如果用户更改文化然后转到我的应用程序中的其他页面,则会加载默认文化。我检查了我的选项,最好的选择似乎是将cookie“UserCulture”设置为例如“c=pl-PL|uic=pl-PL”。问题是我真的不知道如何从剃刀页面中做到这一点。我认为我应该将 asp-page-handler 设置为某个方法(例如“SetCulture”)并在该方法中设置 cookie,但这会导致一些问题:
- 如果表单位于 _Layout.cshtml 中,“SetCulture”应该放在哪里? _Layout.cshtml 文件后面没有代码
- 如何从anchor提交表单?如果我把 input type="submit" 它 完全破坏了菜单的外观。我知道我可以从 js 中做到这一点 但我尽量避免使用不是绝对需要的 js,尤其是 对于这些基本的东西..
我可能在这里遗漏了一些非常基本的东西,我对 Razor Pages 还是很陌生。事后看来,我可能应该坚持使用 MVC,但据说 Razor Pages 更容易..
【问题讨论】:
标签: c# asp.net-core culture razor-pages