Обновлен с Umbraco v4 до v7 SurfaceController. Ни один маршрут в таблице маршрутов не соответствует предоставленным значениям.

Недавно я преобразовал наш сайт Umbraco в интрасети с v4 на v7.2, а также преобразовал все главные страницы веб-форм в mvc. Я пытаюсь преобразовать usercontrol, который должен быть дочерним действием, в SurfaceController, но я получаю страшную ошибку "Ни один маршрут в таблице маршрутов не соответствует заданным значениям" при попытке вызвать действие:

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

Это просто действие get, для которого не требуется представление или модель. Он просто вызывает действие на сервере, и сервер обновляет файл на сервере, который затем читается с помощью некоторого 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", хотя это не плагин с атрибутом "площадь", но та же проблема.

Может быть, есть обходной путь, о котором я не знаю?

1 ответ

Измените StatusInfo на ServiceStatusInfo в вашем действии. Это должно соответствовать названию действия.

@Html.Action("ServiceStatusInfo", "ServiceStatusSurface")
Другие вопросы по тегам