Не удается получить доступ к модели внутри файла ascx веб-формы - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь сделать простой консольный журнал модели 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)
        {

        }
    }
}

Журнал консолив верхней части выводится как

Uncaught TypeError: Невозможно прочитать свойство 'Form' из неопределенного

Это означает, что свойство Presentation не определено.Что-то не так в том, как я настроил модель в файле ascx?или это проблема с моделью Sitecore, из которой мы получаем данные?Есть идеи, что происходит?

1 Ответ

0 голосов
/ 12 июня 2019

Похоже, у вашего проекта есть какая-то платформа поверх Sitecore, ModelBoundUserControl.

В веб-формах Sitecore ASP.NET текущий элемент 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;

Где Title - это имя поля, вы также можете использовать GUID. В принципе, нет модели, у которой есть общий объект Sitecore Item.

...