簡體   English   中英

Umbraco表面控制器內部v6項目

[英]Umbraco surface controller inside v6 project

我已經在我的Umbraco應用程序(v6)中實現了Surface控制器,但是它不起作用。

這是簡單的Hello World類:

public class MySurfaceController : Umbraco.Web.Mvc.SurfaceController
{
    [HttpGet]
    public ActionResult Index()
    {
        return Content("hello world");
    }
}

不幸的是,每當我訪問它時,都會收到HTTP 404錯誤。 我嘗試了以下網址:

  • /一把umbraco /面/我
  • /一把umbraco /表面/ mysurface
  • /一把umbraco /表面/ mysurfacecontroller
  • /一把umbraco /面/我的/指數
  • /一把umbraco /表面/ mysurface /索引
  • /一把umbraco /表面/ mysurfacecontroller /索引

我的Global.asax繼承自Umbraco.Web.UmbracoApplication

有沒有人對我可能做錯了什么有任何建議?

謝謝

這里有幾件事:

您不再需要結束控制器“SurfaceController”的名稱,只需從SurfaceController繼承即可。

此外,您不需要路徑前綴/Umbraco/surface/ /my/ ,如果您的控制器被稱為MyController ,您應該能夠在/my/上訪問Index()動作。

編輯:

假設您要從控制器提供頁面,則需要修改web.config AppSetting條目以包含控制器的路徑

<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/my" />

您還需要從global.asax注冊專門為您的控制器設置的路由:

routes.MapRoute(
    name: "Default",
    url: "my/{action}/{id}",
    defaults: new { action = "Index", id = UrlParameter.Optional }
);

重要的是,這是特定於您的控制器,因為您不希望它覆蓋任何Umbraco路由。

暫無
暫無

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

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