通过Razor创建新节点(在Umbraco中)

时间:2012-05-14 08:48:37

标签: .net razor umbraco

我正在尝试在Umbraco内创建预订系统,以便在我的网站上提交预订表格后,它还会在Umbraco后端创建一个新节点供参考。是否有可能只使用剃须刀?如果没有,我该如何创建此功能?

我目前正在处理从Umbraco文档中向我建议的以下代码(通过在发送成功时运行的代码块中添加它),但我的剃刀脚本错误:

using umbraco.BusinessLogic;
using umbraco.cms.businesslogic.web;

DocumentType dt = DocumentType.GetByAlias("Textpage"); 
User author = User.GetUser(0); 
Document doc = Document.MakeNew("My new document", dt, author, 1018); 

我正在使用Umbraco v4.7.1.1并收到以下错误:“无法找到类型或命名空间名称'DocumentType'(您是否缺少using指令或程序集引用?)”。

如果我将@s添加到命名空间,我会得到错误:'System.Security.Principal.IPrincipal'不包含'GetUser'的定义,也没有扩展方法'GetUser'接受'System'类型的第一个参数可以找到.Security.Principal.IPrincipal'(您是否缺少using指令或程序集引用?)

2 个答案:

答案 0 :(得分:4)

using语句需要在你的剃刀代码块之外:

@using umbraco.BusinessLogic;
@using umbraco.cms.businesslogic.web;
@{
    DocumentType dt = DocumentType.GetByAlias("Textpage"); 
    User author = User.GetUser(0); 
    Document doc = Document.MakeNew("My new document", dt, author, 1018); 
}

答案 1 :(得分:1)

请尝试在类中使用完整的命名空间,而不是使用 using 语句。

E.g。 umbraco.cms.businesslogic.web.DocumentType

接下来还尝试在Visual Studio中打开解决方案。 这样,您将获得名称空间的IntelliSense。