0

我最近将我们的 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”属性但同样问题的插件。

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

4

1 回答 1

0

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

@Html.Action("ServiceStatusInfo", "ServiceStatusSurface")
于 2015-01-15T19:21:22.260 回答