我最近将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”选项也试过。
也许有一种解决方法,我不知道?
你能尝试添加@ Html.Action(“指数”,“ServiceStatusSurface”)将基地布局的网页,看看世界你好将显示你把它? – Jerode
对不起,延迟响应,我没有意识到你的评论。我已经在MasterPage.cshtml中尝试了这是我的基本页面,仍然得到相同的错误。考虑到我从v4切换,我没有创建_Layout.cshtml页面,只是引用MasterPage.cshtml作为我的基本布局页面。也许我应该那样做?我不认为这会对路由问题产生任何影响。 –
我其实今天也试过这个:http://stackoverflow.com/questions/22925202/umbraco-7-update-umbraco-routes但仍然没有去同样的错误。我想也许“Startup.cs”文件将有助于路由问题,但它不会。也许有什么东西逗留覆盖了umbraco路由表。 –