我知道这是相当noobish,我是一个vb.net开发人员,需要知道为什么@T在NopCommerce中使用,它的好处/用途是什么?
例如我们可以使用下面的代码进行解释..我正在尝试做@T(“Forum.Forums”)。ToUpper()并且它会抛出错误..
CS1061:'Nop.Web.Framework.Localization.LocalizedString'不包含...的定义。
@model MenuModel @using Nop.Web.Models.Common;
<ul class="top-menu">
@Html.Widget("header_menu_before")
<li><a href="@Url.RouteUrl("HomePage")">@T("HomePage")</a></li>
@if (Model.RecentlyAddedProductsEnabled)
{
<li><a href="@Url.RouteUrl("RecentlyAddedProducts")">@T("Products.NewProducts")</a>
</li>
}
<li><a href="@Url.RouteUrl("ProductSearch")">@T("Search")</a> </li>
<li><a href="@Url.RouteUrl("CustomerInfo")">@T("Account.MyAccount")</a></li>
@if (Model.BlogEnabled)
{
<li><a href="@Url.RouteUrl("Blog")">@T("Blog")</a></li>
}
@if (Model.ForumEnabled)
{
<li><a href="@Url.RouteUrl("Boards")">@T("Forum.Forums")</a></li>
}
<li><a href="@Url.RouteUrl("ContactUs")">@T("ContactUs")</a></li>
@Html.Widget("header_menu_after") </ul>
答案 0 :(得分:3)
用于本地化。您也可以在Orchard CMS中找到相同的模式。
NOP Commerce存储用于数据库本地化的资源(键值对)。在访问时,它会缓存它们并使用它们的引擎来访问这些资源。
@T只是一种在应用程序中使用不同语言时访问资源的方法。
为了删除我提到的错误,我们需要使用Convert.ToString(T(“whatever”))。ToUpper()并且它不会再次抛出该错误