我正在尝试在演示文件视图中创建一个ascx模型的简单控制台日志。
<script>
console.log("hello world", <%=Model%>);
</script>
我已经在第一行定义了模型
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Guide.ascx.cs" Inherits="Guide.Presentation.Form" %>
为了天哪,这是背后的代码
namespace Guide.Presentation
{
public partial class Form : ModelBoundUserControl<Model.Form>
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
顶部的控制台日志显示为
未捕获的TypeError:无法读取未定义的属性“ Form”
表示Presentation属性未定义。 我在ascx文件中设置模型的方式有什么问题吗?还是我们从中获取数据的Sitecore模型有问题?有什么想法吗?
答案 0 :(得分:0)
看起来您的项目在Sitecore的ModelBoundUserControl之上具有某种框架。
在Sitecore ASP.NET Web表单中,您可以通过以下方式获取当前Sitecore项:
Sitecore.Context.Item
如果您使用数据源,则可以使用以下内容获取数据源项。
Sublayout currentSublayout = this.Parent as Sublayout;
string DataSource = currentSublayout.DataSource;
item Item = Sitecore.Context.Database.GetItem(DataSource)
如果您使用的Sitecore版本非常旧,则数据源是路径而不是GUID。
如果您有Sitecore项,则可以访问例如字段
string Title = item.Fields["Title"].Value;
“标题”是字段名称,您也可以使用GUID。基本上没有模型,您拥有一个通用的Sitecore项目对象。