我有一个基于.NET&amp ;;的脚本。在任何html元素呈现之前,立即在网页上呈现的Razor。除了MySQL查询之外,该脚本还使用以下方法在屏幕上编写一些数据:
Response.Write("Some data");
我正在使用Umbraco v4.7.2并且希望脚本在整个文档加载后呈现我插入宏的位置。我已经尝试将我的脚本包装在事件处理程序中,类似于以下内容,但是无法识别并导致整个脚本呈现为文本:
protected void Page_LoadComplete(object sender, EventArgs e) {
Response.Write("Page Load Complete!");
}
事件处理程序似乎经常被使用,但我不太了解Umbraco文档,我需要在我的剃刀脚本中引用它以便呈现它们吗?我需要引用“cs”文件吗?
我也尝试使用'RenderEvent'属性,该属性基于我的脚本似乎没有做任何事情。
答案 0 :(得分:1)
Umbraco事件主要用于处理API;文档保存,发布,删除等时
使用不同的方法,您可以构建一个Umbraco基类,然后在加载时使用Javascript AJAX调用将结果拉下来。 Umbraco base允许您快速构建REST扩展,允许您通过API访问Umbraco。
这是一个示例基类:
using umbraco.presentation.umbracobase;
namespace BaseExample
{
[RestExtension("MyAlias")]
public class TestClass
{
[RestExtensionMethod(allowAll = true)]
public static string GetData()
{
return "Some data";
}
}
}
更详细的说明可以在Umbraco wiki中找到。将基类的DLL放入bin
目录后,可以通过导航到http://[domain]/base/MyAlias/GetData
来调用该方法。默认情况下,该方法将返回XML,但为了更容易地将其与Javascript集成,您可以让它返回JSON。查看this SO answer了解详情。
答案 1 :(得分:0)
我终于找到了最简单的解决方案;使用@ Html.Raw()而不是Response.Write(“Some data”)做了我需要做的事。