标签: umbraco

Umbraco - 在C#中查找根节点

我正在研究后端模块,所以Node.GetCurrent()不是一个选择.我需要找到一种方法来调用类似的东西Node currentNode = new Node(parentNodeId);并获取网站的根节点.我在XSLT中看过样本,但C#没有.有谁知道我怎么能做到这一点?

即使只是获取根节点的ID,我也可以调用new Node()它.

c# umbraco

12
推荐指数
5
解决办法
2万
查看次数

检查财产存在

在umbraco中,是否可以检查特定节点是否存在某些属性?

例如,我有5个节点,我只有第一个节点的媒体选择器属性.我需要检查所有节点是否媒体选择器属性可用于节点?

umbraco

11
推荐指数
2
解决办法
6336
查看次数

适合初学者的Umbraco:与VS 2012和uSiteBuilder一起在localhost上设置Umbraco

介绍

花了两天时间试图让Umbraco与visual studio 2012,iis和某种页面构建器一起工作.在跟随包括Umbraco 5在内的许多指南之后发现Umbraco 5已经死了,我得到了它的工作.

我只是这样做,以帮助像我这样的新Umbraco用户在他们的发展中获得一个良好的开端.

使用VS 2012设置Umbraco

  1. 从已安装的VS 2012模板创建新的WebForm项目.
  2. 从属性和引用除外的解决方案中删除所有内容.
  3. 从包管理器控制台运行"PM> Install-Package UmbracoCms"
  4. 在项目上单击鼠标右键,然后选择"属性".在WebTab下,确保项目使用本地IIS Web服务器和"创建虚拟目录".
  5. 保存项目并使用F5运行.VS 2012询问您是否希望修改Web.config文件以进行调试,单击"确定".
  6. 现在按照webbrowser中的Umbraco安装步骤进行操作.
  7. 在"数据库配置"中,选择"SQL CE 4数据库".
  8. 在starterkits上选择空模板.
  9. 第一步完成.现在我们只需要将uSiteBuilder添加到我们的项目中.

设置uSiteBuilder以便能够轻松地从Code构建DocumentTypes和Templates等

  1. http://usitebuilder.codeplex.com/releases/view/71768下载uSiteBuilder.dll
  2. 在VS 2012项目的References中添加对此dll的引用
  3. 将uSiteBuilder.dll复制到项目内的binfolder.
  4. 按F5,你会注意到dll会在web.config中添加对我们dll的引用
  5. 按照下面的uSiteBuilder指南构建DocumentTypes(普通.cs类)和模板(主页和嵌套masterpages)

DocumentTypes - http://usitebuilder.vegaitsourcing.rs/tutorials?id=22389

模板 - http://usitebuilder.vegaitsourcing.rs/tutorials?id=22391

成品

当我们完成所有这些步骤后,我们准备在uSiteBuilder的帮助下从代码构建Umbracosites.

  • 由于我们只下载了uSiteBuilder.dll而不是包含vs2012模板的整个软件包,因此我们必须自己添加类(DocumentTypes)和Masterpages(模板).

.net iis umbraco visual-studio-2012

11
推荐指数
0
解决办法
2793
查看次数

如何创建一个空的IOrderedEnumerable <DynamicNode>和IEnumerable <IGrouping <string,DynamicNode >>

我需要一种方法来创建一个空的IOrderedEnumerable和IEnumerable>

//上面的IGrouping DynamicNode被stackoverflow剥离:(

原因:我创建了3个空列表类型(IOrdered,IGrouping,IEnumerable)然后基于一些其他信息(用户指定的选项,如按创建日期或按月分组的顺序)然后我调用一个函数来分配所述类型的列表.

(简短片段)

//DOESNT WORK THIS IS THE PART I NEED
IEnumerable<DynamicNode> baseList = Enumerable.Empty<DynamicNode>();
IOrderedEnumerable<DynamicNode> orderedList =  (IOrderedEnumerable<DynamicNode>)Enumerable.Empty<DynamicNode>();
IEnumerable<IGrouping<string, DynamicNode>> groupedList = (IEnumerable<IGrouping<string, DynamicNode>>)Enumerable.Empty<DynamicNode>();
//ABOVE DOESNT WORK THIS IS THE PART I NEED

if (order)
    {
        if (group)
    {
        groupedList = returnGroupedOrderedList(nodeList, ascending, useFeatured, groupBy, orderBy);
    }
    else
    {
        orderedList = returnOrderedList(nodeList, ascending, useFeatured, orderBy);
    }
}
Run Code Online (Sandbox Code Playgroud)

谁知道怎么做?

ps如果我还不够清楚请告诉我如何帮助你,帮助我:)

谢谢!

c# umbraco razor

11
推荐指数
1
解决办法
3876
查看次数

发布Umbraco时我应该删除TEMP文件夹吗?

当我向我的服务器发布内容时,我是否应该发布`AppData\Temp'文件夹?

逻辑不是这样做,但无法在网上找到有关它的信息.

.net umbraco

11
推荐指数
2
解决办法
1万
查看次数

如何确定umbraco中的当前页面文档类型?

我觉得有一个关于Umbraco的一个非常简单的问题,但是一个尚未明确答案的问题.

我有一个剃刀模板,标准的东西,@显示变量和一些内联C#代码.

在我使用的模板中的某一点:

@Umbraco.RenderMacro("myCustomMacro");
Run Code Online (Sandbox Code Playgroud)

没有问题,一切都按预期工作.

现在,这个宏被插入到每个页面上(它在主模板中),但我有一个页面属性,允许内容作者通过页面属性中的复选框打开和关闭它,到目前为止,所有好的一切都完美无缺.

但是我现在发现,对于某个"文档类型",必须显示该组件,所以我一直试图找到一种方法来执行该检查.

现在在我看来,这应该像做这样的事情一样简单:

@{
  if(CurrentPage.documentType == "someDocTypeAliasHere")
  {
     //Render the macro
  }
  else
  {
     // Render the macro only if the tick box is checked
  }
 }
Run Code Online (Sandbox Code Playgroud)

正如我所说,这是(或者我认为它应该是无论如何)一个非常简单的操作,但到目前为止似乎没有结果.

到目前为止我尝试了什么?

除了阅读我们umbraco上的每一页都提到与剃刀和@CurrentPage变量有关的内容之外,我已经通过剃须刀属性备忘单,并尝试了看似最常见的属性,包括(不具体)订购):

@CurrentPage.NodeTypeAlias
@CurrentPage.NodeType
@CurrentPage.ContentType
@CurrentPage.DocumentType
Run Code Online (Sandbox Code Playgroud)

和那些看起来像他们可能适合该法案的其他一些字母案例组合.

一致地,属性要么不存在要么是空的,所以在它们中没有可用的信息来帮助确定结果.

所以现在经过几天的圈子,并没有到达任何地方,我发现自己在这里..

(请注意:这不是搜索XSLT问题,也不是迭代子集合或类似的东西,因此任何发布XSLT,宏,页面模板或类似内容的请求都将被拒绝,我需要做的就是找到一个确定当前正在呈现的页面的文档类型的方法.)

干杯

美女

PS:忘了提,我正在使用

umbraco v 4.11.8(汇编版本:1.0.4869.17899)

以防万一有人问.

macros doctype umbraco razor

11
推荐指数
3
解决办法
3万
查看次数

使用Knockout.js准备好jQuery文档

我刚刚扔进一把umbraco ASP.NET CMS对我的最新项目,我不知道这是怎么了一刀切,但我的设置Knockout.js做了所有的模板.

我不是太热衷于knockout.js但是到目前为止它一直很简单,除了当我开始添加一些jQuery的东西时,我遇到的问题是jQuery在敲除之前已经完成了填充页面的所有元素.

到目前为止,唯一对我有用的解决方案是我的所有jQuery内容都包含在setTimeout()函数中,这显然是不行的.

使jQuery和Knockout协同工作的最有效方法是什么,所以jQuery在敲除之前不会完成?

javascript jquery umbraco knockout.js

11
推荐指数
2
解决办法
9179
查看次数

Umbraco如何使用image属性id来获取URL

好吧,我对Umbraco/C#非常新,我想要做的是循环自定义媒体类型为我的应用程序的主页构建横幅,@bannerUrl总是返回images属性id而不是文件路径到资源.您将如何从Umbraco中创建的自定义媒体类型中检索图像文件路径.

请参阅代码示例:

var mediaFolder = Umbraco.Media(mediaFolderId);
var banners = mediaFolder.Children();

foreach (var banner in banners)
    {
     var bannerUrl = banner.image;

      <div style="background-image:url(@bannerUrl);"></div>

 }
Run Code Online (Sandbox Code Playgroud)

该变量bannerUrl始终返回默认的图像ID,而不是URL的文件路径.如何让文件路径正常工作?在VS中调试器中检查banner对象的内容时,我注意到Url属性有以下错误:

Url = 'banner.Url' threw an exception of type 'System.NotSupportedException'
Run Code Online (Sandbox Code Playgroud)

虽然我可以在.Url线上使用某些东西,但这似乎不起作用,所以任何建议如何使用Dynamic方式获取URL在Umbraco中的图像属性.

谢谢.

c# umbraco umbraco7

11
推荐指数
2
解决办法
2万
查看次数

Umbraco 7中的表面控制器或自定义控制器?

历史

我是一名Web Forms开发人员,拥有一些.NET MVC经验,对Umbraco来说是新手,并且在我学习的过程中学习.

到目前为止,我一直在关注Umbraco文档和视频以进行设置,这意味着我的所有控制器都继承了包含常用功能的"Controller Base",它本身继承自SurfaceController.

最近,我注意到一些博主和外部参考资料引用了基类中的RenderMvcController而不是SurfaceController - 现在Umbraco文档还不清楚两者之间的真正差异,以及你应该使用它们的情况.

问题

Surface控制器的想象使用场景(从Umbraco.Web.Mvc.SurfaceController继承)和自定义控制器(从Umbraco.Web.Mvc.RenderMvcController继承)之间是否有明显的区别?

谢谢!

c# asp.net-mvc umbraco umbraco7

11
推荐指数
2
解决办法
1万
查看次数

是否可以在ASP.NET Core API中运行Umbraco?

是否可以将Umbraco与ASP.NET Core API项目一起使用?这两种技术可以一起工作还是我必须使用.NET 4.x?

:::::::::::::::::::::::::更新:::::::::::::::::::::::::::::::::::

我接受了@ mortenbock的答案,但我强烈建议对这个问题感兴趣的人也阅读下面的评论,其中@Tseng提供了一些非常有用的答案.

asp.net umbraco asp.net-core

11
推荐指数
1
解决办法
9008
查看次数