Виджеты Sitefinity MVC не регистрируются

Надеюсь, кто-то может помочь мне с этим, потому что поддержка Sitefinity, похоже, зашла в тупик, и сообщество на странице G+ также, похоже, зашумлено.

У меня мертвый простой виджет MVC:

Контроллер [~/Mvc/Controllers/TestWidgetController.cs]:

using System.Web.Mvc;
using Telerik.Sitefinity.Mvc;

namespace SitefinityWebApp.Mvc.Controllers
{
    [ControllerToolboxItem(Name="TestWidget", Title="Test widget", SectionName="Test section")]
    public class TestWidgetController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
    }
}

Модель [~/Mvc/Models/TestWidgetModel.cs]:

namespace SitefinityWebApp.Mvc.Models
{
    public class TestWidgetModel
    {
    }
}

Просмотр [~/Mvc/Views/TestWidget/Index.cshtml]:

<p>Test</p>

Если я возьму контроллер, модель и представление и добавлю их в новый проект Sitefinity, а затем соберу этот проект, виджет будет автоматически зарегистрирован без проблем, и я смогу сразу его использовать.

Однако у меня есть один конкретный проект Sitefinity, в который я хочу добавить этот виджет, и этот проект при сборке не регистрирует виджет автоматически. Если я пытаюсь зарегистрировать виджет вручную, я получаю исключения NullReference. Как будто проект на самом деле не видит эти файлы как-то.

Кто-нибудь знает, что здесь может происходить? Я думаю, что простота виджета и тот факт, что он работает в новом проекте Sitefinity, указывает на то, что определенно что-то не так с настройкой этого конкретного проекта, но я не могу понять, в чем проблема.

Для чего стоит вот это Solution Explorer для проблемного проекта:

Снимок экрана обозревателя решений

4 ответа

Вам нужно сказать, что контроллер возвращает страницу. В зависимости от каталога файлов это Index.cshtml Следовательно:

      using System.Web.Mvc;
using Telerik.Sitefinity.Mvc;

namespace SitefinityWebApp.Mvc.Controllers
{
    [ControllerToolboxItem(Name="TestWidget", Title="Test widget", SectionName="Test section")]
    public class TestWidgetController : Controller
    {
        public ActionResult Index()
        {
            return View("Index");
        }
    }
}

Теперь возможно иметь виджет MVC в отдельной сборке, которая автоматически регистрируется на панели инструментов.

Проверьте этот документ для получения дополнительной информации

Не могли бы вы попробовать переименовать контроллер и его имя панели инструментов? Иногда Sitefinity работает забавно

Похоже, у вас возникла проблема с регистрацией виджетов в магазине контроллеров. Поскольку, скорее всего, эта проблема вызвана проблемами, связанными с этим конкретным проектом, настоятельно рекомендуется пойти и открыть заявку в систему поддержки Sitefinity. Таким образом, ваш проект может быть проверен более подробно, и будут рекомендованы наиболее подходящие действия.

Кроме того, не могли бы вы указать версию вашего проекта SItefinity? Это определенно поможет в расследовании проблемы.

Также есть файл журнала ошибок, который можно найти в ~\App_Data\Sitefinity\Logs. Проверьте и посмотрите, что там зарегистрировано. Это может дать представление о том, что является причиной проблемы и где искать возможные решения.

С Уважением,

Десислав

Другие вопросы по тегам