【问题标题】:why is @T used in NopCommerce and what are its benefits / usage?为什么在 NopCommerce 中使用@T,它的好处/用途是什么?
【发布时间】:2013-10-26 20:02:20
【问题描述】:

我知道这很愚蠢,我是一名 vb.net 开发人员,需要知道为什么在 NopCommerce 中使用 @T 以及它的好处/用途是什么?

例如,我们可以使用下面的代码进行解释.. 我正在尝试做 @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>

【问题讨论】:

    标签: c# nopcommerce razorengine


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 好的,我正在尝试将 .ToUpper() 添加到它以大写显示它不起作用?并给出我上面提到的错误任何线索为什么?
    • 您需要将任何您尝试的资源的键值添加到资源中。
    • 我尝试编辑您对添加的答案以删除我提到的错误,我们需要使用 Convert.ToString(T("whatever")).ToUpper() 并且它不会抛出该错误再次
    猜你喜欢
    • 1970-01-01
    • 2010-09-27
    • 2011-12-17
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    相关资源
    最近更新 更多