Asp.net mvc 3 通过asp.Net MVC中的System.Net WebClient请求页面内容

Asp.net mvc 3 通过asp.Net MVC中的System.Net WebClient请求页面内容,asp.net-mvc-3,umbraco,Asp.net Mvc 3,Umbraco,翁布拉科河。4.7 我的项目是沿着asp.NETMVC4运行的。我有一个Umbraco页面,在文档类型上有一个富文本编辑器属性,它将保留一个带有HTML的文本体 是否有方法使用System.Net.WebClient客户端,从我的MVC项目中请求Umbraco页面,并让它将该页面的文档属性的内容返回给MVC控制器的WebClient请求 奖金问题: 是否有办法在模板中设置一个Umbraco宏,该宏将解析查询字符串参数,并在Umbraco模板中设置占位符,该宏将在内容返回到请求之前用解析出的查询字

翁布拉科河。4.7

我的项目是沿着asp.NETMVC4运行的。我有一个Umbraco页面,在文档类型上有一个富文本编辑器属性,它将保留一个带有HTML的文本体

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

奖金问题:


是否有办法在模板中设置一个Umbraco宏,该宏将解析查询字符串参数,并在Umbraco模板中设置占位符,该宏将在内容返回到请求之前用解析出的查询字符串参数替换占位符(如上所述)?

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

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

你用过翁布拉科的分机吗?我相信这可能会对您有所帮助,因为我有类似的需求,并且发现/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都将由razor引擎呈现


-Dan

也许我没有正确理解这个问题,但是将Umbraco dll包括在您的MVC项目中并通过Umbraco API访问内容不是更简单吗?嗯,我对Umbraco不太熟悉,我没有设置MVC/Umbraco项目-一些Umbraco dll包含在其中,而一些Umbraco则没有。也许是你所想的一个例子?有时候,当你不知道什么是可能的时候,很难知道你的选择。
<umbraco:Macro Alias="{RazorAlias}" runat="server"></umbraco:Macro>