我通过在multi-language website中使用资源文件实现了一个Asp.net MVC。一切都很好,但我的问题是在layout。如何使用view-bag在布局中使用动态资源
我需要在我的布局中写一些这样的东西,但是我不知道什么是正确的方法:
@{ var langu = ViewBag.lang;}
@Resources.langu.App_Name;当然也有错误。
这是我的布局页面,如果需要的话:
<!DOCTYPE html>
<html>
<head>
.....
</head>
<body>
<div class="preloader">
<div class="spinner">
<div class="double-bounce1"></div>
<div class="double-bounce2"></div>
</div>
</div>
<!-- Header
============================================ -->
<div class="header">
<div class="container relativesaz">
<div class="row">
<div class="col-sm-12">
<!-- Navbar Header -->
<div class="navbar-header">
<!-- Menu Toggle -->
<button class="menu-toggle"><i class="fa fa-navicon"></i></button>
<!-- Logo -->
<a class="iconvrf logo navbar-brand relativesaz" href="" target="_blank">
<img src="" alt="" />
<span class="fontsmall">
</span>
</a>
</div>
<!-- Menu -->
<div class="menu">
<nav>
<ul>
<li class="active"><a href="#hero-area">Home</a></li>
<li><a href="#about-area">About</a></li>
<li><a href="#feature-area">Feature</a></li>
<li><a href="#pricing-area">Description</a></li>
<li><a href="#screenshot-area">Screenshot</a></li>
<li><a href="#team-area">AW </a></li>
<li>
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
@ViewBag.ActiveMenu
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li>
<ul>
<li><a class="colorblack" href="@Url.Action("ru", "Home")">Russian</a></li>
<li><a class="colorblack" href="@Url.Action("cn", "Home")">Chinese</a></li>
<li><a class="colorblack" href="@Url.Action("jp", "Home")">Japanese</a></li>
<li><a class="colorblack" href="@Url.Action("nl", "Home")">Dutch</a></li>
<li><a class="colorblack" href="@Url.Action("dk", "Home")">Danish</a></li>
<li><a class="colorblack" href="@Url.Action("de", "Home")">German</a></li>
<li><a class="colorblack" href="@Url.Action("fr", "Home")">French</a></li>
<li><a class="colorblack" href="@Url.Action("en", "Home")">English </a></li>
</ul>
</li>
<li>
<ul>
<li><a class="colorblack" href="@Url.Action("tr", "Home")">Turkish</a></li>
<li><a class="colorblack" href="@Url.Action("th", "Home")">Tahi</a></li>
<li><a class="colorblack" href="@Url.Action("sv", "Home")">Swedish</a></li>
<li><a class="colorblack" href="@Url.Action("pt", "Home")">Portuguese</a></li>
<li><a class="colorblack" href="@Url.Action("no", "Home")">Norwegian</a></li>
<li><a class="colorblack" href="@Url.Action("kr", "Home")">Korean</a></li>
<li><a class="colorblack" href="@Url.Action("es", "Home")">Spanish</a></li>
<li><a class="colorblack" href="@Url.Action("it", "Home")">Italian </a></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
@RenderBody()
<script src="~/Scripts/plugins.js"></script>
<script src="~/Scripts/main.js"></script>
</body>
</html>发布于 2017-07-06 12:29:45
您可以直接使用resx而不需要像这样的viewbag:
溶液
一个布局和两个重新设计。

_Layout.cshtml
<header>
<div class="content-wrapper">
<div class="float-left">
<p class="site-title">
@if (System.Globalization.CultureInfo.CurrentCulture.ToString() == "fa-IR")
{
<a href="~/Home/">@Resource_fa_IR.App_Name</a>
}
else
{
<a href="~/Home/">@Resource.App_Name</a>
}
</p>
</div>
</div>
</header>Resource.Designer.cs和Resource.fa.IR.Designer.cs
public static string App_Name {
get {
return ResourceManager.GetString("App_Name", resourceCulture);
}
}您应该在那里的类中将internal更改为public。
https://stackoverflow.com/questions/44945951
复制相似问题