C# 带引导的语言切换器
我正在尝试在导航栏中构建一个语言切换器 我的代码如下(在C# 带引导的语言切换器,c#,asp.net-mvc,twitter-bootstrap,twitter-bootstrap-3,language-switching,C#,Asp.net Mvc,Twitter Bootstrap,Twitter Bootstrap 3,Language Switching,我正在尝试在导航栏中构建一个语言切换器 我的代码如下(在\u LoginPartial.cshtml中) 使用(Html.BeginForm(“SetCulture”、“Home”、FormMethod.Post)){ @Html.AntiForgeryToken() } @ActionLink(“Register”、“Register”、“Account”、routeValue:null、htmlAttributes:new{id=“registerLink”}) @Acti
\u LoginPartial.cshtml
中)
使用(Html.BeginForm(“SetCulture”、“Home”、FormMethod.Post)){
@Html.AntiForgeryToken()
-
}
- @ActionLink(“Register”、“Register”、“Account”、routeValue:null、htmlAttributes:new{id=“registerLink”})
- @ActionLink(“登录”、“登录”、“帐户”、routeValue:null、htmlAttributes:new{id=“loginLink”})
@selectedImgSrc
值为~/assets/images/i18n/en-US.png
@文化价值
是en-us
但是,此代码会产生以下结果
这有两个问题:
- 导航上不显示图像,仅显示文本(en US)
- 下拉列表太大,我不喜欢。有没有办法把它缩小
好的,我不知道为什么我以前没有看到它,但是你的图像在路径的开始处使用了瓷砖。虽然您需要为Asp.net指定的路径是绝对路径,但在普通Html路径中,它只是一个普通字符,因此它查找“…”而不是域的根。(有一些浏览器/Web服务器可以识别它,但它不是URL中的标准。请看下面投票最多的答案:和这里:) 此外,最好使用类似于
@url.Content(“~/assets/images/i18n/en-US.png”)
的Razor助手替换硬编码的url。请注意,现在我使用了tilde,因为ASP.Net将转换为正确的绝对路径。*(我假设您使用razor是因为
@Html.ActionLink
)
下拉列表太大,我不喜欢。有没有办法把它缩小 类“dropdown menu”(.dropdown menu)有一个规则,该类的属性min width设置为160px(min width:160px;)。
所以,它只是用一个新规则覆盖这个属性,比如: Html:
谢谢你的回答。对CSS来说,你的建议很有效。关于第1点,图像被包括在内,html是正确的,请求是好的。在下拉列表中,事实上还有另一个相同图像的实例。哼。。。老实说,你的问题很奇怪,但是,请看我更新的答案,并尝试删除瓷砖。。。让我知道结果…那么@Lorenzo,你是想移除瓷砖还是使用剃刀助手?有什么消息吗?抱歉暂停。我参与了另一项优先级更高的任务。无论如何,你的建议,删除瓷砖也工作得很好。这听起来很奇怪,因为下拉列表中的相同代码可以完美地工作。无论如何,非常感谢,现在问题已经解决了,如果有机会会再次投票吗;)有时候我已经经历过这种奇怪的行为。浏览器有时会保留文件名或/和相对路径的引用,然后即使找不到源,也会显示找到的最后一个文件。我在一个项目中遇到了Js和Css文件。更改了位置,浏览器仍然包含它们,甚至收到404响应。不管怎样,我很高兴能帮助你。不客气!
using ( Html.BeginForm( "SetCulture", "Home", FormMethod.Post ) ) {
@Html.AntiForgeryToken()
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<img src="@selectedImgSrc" alt="@culture" />
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li role="presentation"><a href="#" class="language" rel="it-IT"><img src="~/assets/images/i18n/it-IT.png" alt="Italiano" /></a></li>
<li role="presentation"><a href="#" class="language" rel="en-US"><img src="~/assets/images/i18n/en-US.png" alt="English" /></a></li>
</ul>
</li>
</ul>
}
<ul class="nav navbar-nav navbar-right">
<li>@Html.ActionLink( "Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" } )</li>
<li>@Html.ActionLink( "Sign in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" } )</li>
</ul>
<ul class="dropdown-menu UlLanguageMenu" role="menu">
ul.dropdown-menu.UlLanguageMenu{
min-width: auto;
}