簡體   English   中英

從Umbraco v4升級到v7 SurfaceController路由表中沒有路由與提供的值匹配

[英]Upgraded from Umbraco v4 to v7 SurfaceController No route in the route table matches the supplied values

最近,我將Intranet Umbraco網站從v4轉換為v7.2,並將所有Webform母版頁轉換為mvc。 我正在嘗試將應該是子操作的用戶控件轉換為SurfaceController,但是在嘗試調用該操作時,出現了可怕的“路由表中的任何路由都不匹配提供的值”錯誤:

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

這只是一個獲取操作,不需要視圖或模型。 它只是調用服務器上的操作,服務器會更新服務器上的文件,然后由某些javascript讀取文件。 我進行了很多搜索,並使用Umbraco 7創建了一個示例解決方案,並創建了一個controllers文件夾,然后創建了一個“ 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”屬性的插件,但同樣的問題。

也許有一個我不知道的解決方法?

在您的操作調用中將StatusInfo更改為ServiceStatusInfo。 這應該與操作的名稱匹配。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM