我最近将我们的 Intranet Umbraco 站点从 v4 转换为 v7.2,并将所有 webform 母版页转换为 mvc。我正在尝试将应该是子操作的用户控件转换为 SurfaceController,但是在尝试调用操作时出现可怕的“路由表中的路由与提供的值不匹配”错误:
@Html.Action("ServiceStatusInfo", "ServiceStatusSurface")
这只是一个不需要视图或模型的获取操作。它只是调用服务器上的操作,然后服务器更新服务器上的文件,然后由一些 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”选项,即使这不是具有“area”属性但同样问题的插件。
也许有一种我不知道的解决方法?