为什么@T在NopCommerce中使用,它的好处/用途是什么?

时间:2013-10-26 20:02:20

标签: c# nopcommerce razorengine

我知道这是相当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>

1 个答案:

答案 0 :(得分:3)

用于本地化。您也可以在Orchard CMS中找到相同的模式。

NOP Commerce存储用于数据库本地化的资源(键值对)。在访问时,它会缓存它们并使用它们的引擎来访问这些资源。

@T只是一种在应用程序中使用不同语言时访问资源的方法。

为了删除我提到的错误,我们需要使用Convert.ToString(T(“whatever”))。ToUpper()并且它不会再次抛出该错误