无法访问Webform ascx文件内的模型

时间:2019-06-12 09:12:16

标签: javascript webforms sitecore ascx web-forms-for-marketers

我正在尝试在演示文件视图中创建一个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模型有问题?有什么想法吗?

1 个答案:

答案 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项目对象。