首页 > 解决方案 > 无法将类型“Kentico.Web.Mvc.IHtmlContentProxy”隐式转换为“System.Web.HtmlString”

问题描述

在我的 Razor 视图页面中出现这些错误:

HtmlString GetActionUrl()
{
    return Url.Kentico().AuthenticateUrl(Url.Action("Upload", "ImageUploader", new
    {
        pageId = Context.Kentico().PageBuilder().PageIdentifier
    }), false);
}

在此处输入图像描述

添加了 WebConfig:

<system.web.webPages.razor>

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>   
    <add namespace="System.Web.Mvc"/>
    <add namespace="System.Web.Mvc.Ajax"/>
    <add namespace="System.Web.Mvc.Html"/>
    <add namespace="System.Web.Optimization"/>
    <add namespace="System.Web.Routing"/>
    <add namespace="ResolutionDigital"/>
    <add namespace="Kentico.Content.Web.Mvc"/>       
    <add namespace="Kentico.PageBuilder.Web.Mvc"/>      
    <add namespace="Kentico.Web.Mvc"/>
  </namespaces>
</pages>

</system.web.webPages.razor>

我是否缺少一些指令或参考?任何人都可以帮忙吗?我错过了什么?

标签: asp.net-mvckenticokentico-mvc

解决方案


只是在这里添加我的评论,我以某种方式解决了这个问题。我正在为该项目使用 xperience 13。可能我在添加与 kentico 12 相同的代码时遇到了版本问题。但我们可以改用它。

var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);

string GetActionUrl()
{
    return urlHelper.Kentico().AuthenticateUrlRaw(urlHelper.Action("Upload", "ImageUploader", new
    {
        pageId = Service.Resolve<IPageDataContextRetriever>().Retrieve<TreeNode>().Page.DocumentID
    }), false);
} 

我相信您还需要添加一些参考。

@使用 CMS.Core @使用 CMS.DocumentEngine

谢谢!


推荐阅读