2015-01-14 76 views
0

我最近将Intranet Umbraco站点从v4转换为v7.2,并将所有webform masterpages转换为mvc。从Umbraco v4升级到v7 SurfaceController路由表中没有路由与提供的值匹配

@Html.Action("ServiceStatusInfo", "ServiceStatusSurface") 

: 我想转换一个usercontrol这应该是一个孩子的动作的SurfaceController,但我越来越害怕试图调用时的动作“在路由表中没有路由匹配所提供的值”错误这只是一个不需要视图或模型的获取操作。它只是调用服务器上的操作,服务器更新服务器上的文件,然后通过一些JavaScript读取。 我做了很多搜索,并使用Umbraco 7创建了一个示例解决方案,并创建了一个控制器文件夹,然后创建了一个“MySurfaceController”,我可以从示例解决方案的母版中调用操作,但最近没有问题转换项目似乎有一些奇怪的路由问题正在进行。我比较web.config的当前项目和样本之一,他们几乎有相同的条目(我想也许我错过了什么)。看来我的转换项目不能识别路由。任何帮助将不胜感激。

这里是SurfaceController

using Umbraco.Web.Mvc; 
using System.Web.Mvc; 

namespace MyUmbracoApp.Controllers 
{ 
public class ServiceStatusSurfaceController : SurfaceController 
{ 
    // can't reach this either: 
    public ActionResult Index() 
    { 
     return Content("hello world"); 
    } 

    // this is what I am trying to reach 
    [ChildActionOnly] 
    public ActionResult ServiceStatusInfo() 
    { 
     // do some stuff to get the status 

     return CurrentUmbracoPage(); 
    } 
    } 
} 

我一直在使用,即使这不是与“区域”属性,但同样的问题插件“PluginController”选项也试过。

也许有一种解决方法,我不知道?

+0

你能尝试添加@ Html.Action(“指数”,“ServiceStatusSurface”)将基地布局的网页,看看世界你好将显示你把它? – Jerode

+0

对不起,延迟响应,我没有意识到你的评论。我已经在MasterPage.cshtml中尝试了这是我的基本页面,仍然得到相同的错误。考虑到我从v4切换,我没有创建_Layout.cshtml页面,只是引用MasterPage.cshtml作为我的基本布局页面。也许我应该那样做?我不认为这会对路由问题产生任何影响。 –

+0

我其实今天也试过这个:http://stackoverflow.com/questions/22925202/umbraco-7-update-umbraco-routes但仍然没有去同样的错误。我想也许“Startup.cs”文件将有助于路由问题,但它不会。也许有什么东西逗留覆盖了umbraco路由表。 –

回答

0

在动作调用中将StatusInfo更改为ServiceStatusInfo。这应该匹配行动的名称。

@Html.Action("ServiceStatusInfo", "ServiceStatusSurface") 
+0

对不起,但这只是我上面粘贴的代码中的一个错字。我正在调用它,因为你已经回复了。 –

相关问题