为什么我不能在自己的课堂上访问UmbracoHelper

use*_*019 3 c# asp.net-mvc umbraco umbraco7

我想在自己的课堂上从Umbraco那里得到一张照片.

我不明白为什么我不能在课堂上使用@umbraco助手.我在类中定义了它的命名空间,例如:

using Umbraco.Core.Models;
using Umbraco.Web;
Run Code Online (Sandbox Code Playgroud)

我写的时候只能使用UmbracoHelper:

var umbracoHelper = new UmbracoHelper(Umbraco.Web.UmbracoContext.Current);
Run Code Online (Sandbox Code Playgroud)

这是我的班级:

using Umbraco.Core.Models;
using Umbraco.Web;

namespace House.Site.Helpers
{
    public static class ImageClass
    {
        public static string GetAbsoluteImageUrl(this IPublishedContent node, string propertyName)
        {
            var umbracoHelper = new UmbracoHelper(Umbraco.Web.UmbracoContext.Current);

            var imgID = node.GetPropertyValue<string>("propertyName");
            var imgObject = umbracoHelper.TypedMedia(imgID);

            return imgObject.Url;
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

小智 12

由于您的类不是从任何Umbraco基类继承,因此您必须自己实例化UmbracoHelper.

使用以下方式这样做:

var umbracoHelper = new UmbracoHelper(UmbracoContext.Current)
Run Code Online (Sandbox Code Playgroud)

非常好,可以让您获得所需的东西.

您应该能够使用just UmbracoContext.Current而不是完整的命名空间和类名,因为您已经拥有该using语句Umbraco.Web.