找不到BetterCMS服务器小部件控制器/视图



直接从NuGet使用BetterCMS 2.0.6.192。全新的c#项目。

我已经完成了多次设置,但无法获得服务器小部件来调用自定义控制器/视图代码。

我正在尝试创建一个自定义服务器小部件。我在View/Widgets文件夹中有Phonebook.cshtml,并在网站的一个页面上注册为Widget。这个小部件视图将使用一些简单的html进行渲染,但当我尝试发布或渲染部分视图时,我会收到一个错误"路由表中没有与提供的值匹配的路由"。

在Phonebook.cshtml小部件中,我添加了

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

但是未找到局部视图。在带有小部件的页面上看到的错误消息是,

"呈现视图"~/Views/Widgets/Phonebook.cs.html"时出错:路由表中没有与提供的值匹配的路由。".

我在/Views文件夹的/Controllers文件夹中有一个PhonebookController,我有一个Index.chtml。在调试时,索引视图永远不会被激发。

我还尝试添加

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

到/Views/Widgets/Phonebook.cshtml。我有/Areas/Phonebbook/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中,我已经按照文档中的说明注释掉了默认路由。

帮助。

这是一个交叉张贴在更好的CMS论坛,不确定该论坛有多少流量。http://www.bettercms.com/support/widgets-and-modules/struggling-with-server-widget/

新手失误。忘记在Global.asax.cs文件中注册Routes。

旧代码-不起作用:

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

新代码-作品:

   protected void Application_Start()
   {
       cmsHost = CmsContext.RegisterHost();
       AreaRegistration.RegisterAllAreas();
       FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
       RouteConfig.RegisterRoutes(RouteTable.Routes);
       cmsHost.OnApplicationStart(this);
   }

最新更新