2016-10-19 3 views
0

Использование BetterCMS 2.0.6.192 непосредственно у NuGet. Новый проект C#.BetterCMS Server Widget Controller/View not found

Я прошел через установку несколько раз, но не могу получить виджет сервера, чтобы вызвать пользовательский код контроллера/просмотра.

Я пытаюсь создать собственный виджет сервера. У меня есть Phonebook.cshtml в папке View/Widgets и зарегистрирован как виджет на странице на сайте. Этот вид виджетов будет отображаться с помощью некоторого простого html, но когда я пытаюсь отправить или отобразить частичное представление, я получаю сообщение об ошибке «Никакой маршрут в таблице маршрута не соответствует указанным значениям».

В виджете Phonebook.cshtml я добавил

@{ Html.RenderAction("Index", "Phonebook", new {Area = ""}); }

но частичный вид не найден. Сообщение об ошибке отображается на странице с виджетом,

«вид рендеринга Ошибки„~/Views/Widgets/Phonebook.cshtml“: Нет. Маршрут в таблице маршрутизации соответствует поставленным значениям».

У меня есть PhonebookController в папке/Controllers в папке/Views у меня есть Index.cshtml. Хотя отладка представления Index никогда не запускается.

Я также попытался добавить

@{ Html.RenderAction("Index", "Phonebook", new { Area = "Phonebook" }); }

к /Views/Widgets/Phonebook.cshtml. У меня /Areas/Phonebook/Controllers/PhonebookController.cs и/Areas/Phonebook/Views/Index действие индекса никогда не запускается.

Я думаю, что это может иметь отношение к маршрутизации. В файле PhonebookAreaRegistration.cs У меня есть

context.MapRoute("Phonebook_default", "Phonebook/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional });

В разделе /App_Start/RouteConfig.cs я закомментированными маршрут по умолчанию, как указано в документации.

Помощь.

Это крест, размещенный на форуме Better CMS, и не уверен, сколько трафика этот форум получает больше. http://www.bettercms.com/support/widgets-and-modules/struggling-with-server-widget/

ответ

0

Rookie ошибка. Забыл зарегистрировать маршруты в файле Global.asax.cs.

Старый код-Не работает:

protected void Application_Start() 
{ 
    cmsHost = CmsContext.RegisterHost(); 
    cmsHost.OnApplicationStart(this); 
} 

Новый code- Работы:

protected void Application_Start() 
    { 
     cmsHost = CmsContext.RegisterHost(); 

     AreaRegistration.RegisterAllAreas(); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 

     cmsHost.OnApplicationStart(this); 
    }