Asp.net 在HTML助手的帮助下创建img标记
我从事MVC5项目,我是MVC技术的新手 我需要根据我的文化价值创建img元素和文本,这里是视图中的代码:Asp.net 在HTML助手的帮助下创建img标记,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我从事MVC5项目,我是MVC技术的新手 我需要根据我的文化价值创建img元素和文本,这里是视图中的代码: @{ var culture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name.ToLowerInvariant(); } 区域性值保留当前区域性 此处显示通过显示标志和文本显示当前区域性的html: <a class="dropdown-toggle no-text-underline" dat
@{
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name.ToLowerInvariant();
}
区域性值保留当前区域性
此处显示通过显示标志和文本显示当前区域性的html:
<a class="dropdown-toggle no-text-underline" data-toggle="dropdown" href="#"><img class="flag-lang" src="/assets/images/flags/no.png" width="16" height="11" alt="lang" />Norsk</a>
当用户选择另一种语言时,会发生回发,并且区域性值会根据用户选择进行更改。回发发生后,上面的html应根据用户选择显示标志和文本
例如,如果用户选择了英语,则文化元素为“en”,html为:
<a class="dropdown-toggle no-text-underline" data-toggle="dropdown" href="#"><img class="flag-lang" src="/assets/images/flags/us.png" width="16" height="11" alt="lang" />English</a>
我想要实现它,我需要在RazorHTML助手的帮助下生成img标记
所以我的问题是如何使用html.helper生成img标记?您可以这样做:
尚未测试它,但它应该可以工作A
HtmlHelper
不是必需的。您只需使用@culture
即可example@StephenMuecke我不仅需要显示tax,还需要显示一个img元素,该元素具有特定flag的src属性。我假设您显示的html是错误的(该id
属性没有意义,我假设它应该是src
属性?)。您只需将图像的路径传递到模型(查看视图模型属性或ViewBag
property=e.g.src=“@view.ImagePath”
是的,我在id和src属性上有错误,已修复。谢谢:)您仍然可以通过ViewBag
传递它,但您应该使用@Html.Action(…)
在布局中调用返回html部分视图的服务器方法。
public static MvcHtmlString DisplayFlag(this HtmlHelper html)
{
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name.ToLowerInvariant();
var imgSrc = string.Format("/assets/images/flags/{0}.png", culture);
TagBuilder tag = new TagBuilder("img");
tag.AddCssClass("flag-lang");
tag.MergeAttribute("src", imgSrc);
return MvcHtmlString.Create(tag.ToString(TagRenderMode.SelfClosing));
}
@Html.DisplayFlag()