Umbraco ver。 4.7
我的项目与asp.net MVC 4一起运行。我有一个Umbraco页面,它在文档类型上有一个富文本编辑器属性,它将保留带有HTML的文本正文。
有没有办法使用System.Net.WebClient客户端,并从我的MVC项目中请求Umbraco页面并让它将该页面的document属性的内容返回给MVC控制器的WebClient请求?
奖金问题:
有没有办法在模板中设置一个Umbraco宏来解析查询字符串参数,并在Umbraco模板中有占位符,宏将在内容返回请求之前用解析出的查询字符串params替换占位符(上面解释过)?
答案 0 :(得分:1)
在MVC4项目中添加对umbraco.dll和umbraco.MacroEngines.dll的引用。
然后你应该能够(在你的控制器或视图中):
dynamic d = new DynamicNode(nodeId);
return d.AliasOfRichTextProperty
答案 1 :(得分:1)
您是否在Umbraco中使用了/Base扩展名?我相信这可能会帮助你,因为我有类似的要求,发现/ Base非常强大。在我的文档类型中,我实际上使用多行文本框作为html的输入(或者在我的案例中使用Razor脚本)。在my / Base类中,我创建了一个方法,用于查找正确的节点,从文本框中获取原始脚本,将脚本呈现为原始html字符串,然后返回包含在标记中的字符串。
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>
你的文本框中的html将由剃刀引擎呈现!
-Dan