2

我正在尝试在 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 指令或程序集引用?)”。

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

4

2 回答 2

4

using 语句需要在您的 razor 代码块之外:

@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); 
}
于 2012-05-17T17:03:45.077 回答
1

不要使用using语句,而是尝试将完整的命名空间与类一起使用。

例如 umbraco.cms.businesslogic.web.DocumentType

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

于 2012-05-14T15:36:33.513 回答