0

Umbraco 版本。4.7

我的项目与 asp.net MVC 4 一起运行。我有一个 Umbraco 页面,它在文档类型上有一个富文本编辑器属性,它将保留带有 HTML 的文本正文。

有没有办法使用 System.Net.WebClient 客户端,并从我的 MVC 项目中请求 Umbraco 页面,并让它将该页面的文档属性的内容返回给 MVC 控制器的 WebClient 请求?

奖金问题:

有没有办法在模板中设置一个 Umbraco 宏来解析查询字符串参数并在 Umbraco 模板中有占位符,宏将在内容返回到请求之前用解析出的查询字符串参数替换占位符(解释多于)?

4

2 回答 2

1

在 MVC4 项目中添加对 umbraco.dll 和 umbraco.MacroEngines.dll 的引用。

然后,您应该能够(在您的控制器或视图中)执行以下操作:

dynamic d = new DynamicNode(nodeId);
return d.AliasOfRichTextProperty
于 2012-08-14T14:43:11.893 回答
1

你在 Umbraco 中使用过/Base扩展吗?我相信这可能会对您有所帮助,因为我有类似的要求并且发现 /Base 非常强大。在我的文档类型中,我实际上使用了一个多行文本框作为 html(或者在我的情况下为 Razor 脚本)的输入。在我的 /Base 类中,我创建了一个查找正确节点的方法,从文本框中获取原始脚本,将脚本呈现为原始 html 字符串,并返回包含在 tag 中的字符串。

public static string GetRazor()
    {
        var doc = new DynamicNode(nodeId);

        string razorScript = doc.GetPropertyValue("{propertyAlias}");
        string razorString = RenderRazor.RenderRazorScriptString(razorScript, nodeId);            

        return razorString;
    }

另一种方法是在 Umbraco 中创建一个模板可以调用的宏,例如:

   @using umbraco.MacroEngines
   @{
       dynamic node = @Model;
       string htmlString = node.GetPropertyValue("{propertyAlias}");
       @Html.Raw(htmlString)
    }

然后在您的模板中,您只需要注入宏:

<umbraco:Macro Alias="{RazorAlias}" runat="server"></umbraco:Macro>

razor 引擎将呈现文本框中的任何 html!

-担

于 2012-08-14T22:14:10.717 回答