4

Umbraco アプリケーション (v6) に Surface コントローラーを実装しましたが、機能しません。

簡単な Hello World クラスを次に示します。

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

残念ながら、アクセスするたびに HTTP 404 エラーが発生します。次の URL を試しました。

  • /Umbraco/surface/my
  • /Umbraco/表面/私の表面
  • /Umbraco/surface/mysurfacecontroller
  • /Umbraco/surface/my/index
  • /Umbraco/表面/私の表面/インデックス
  • /Umbraco/surface/mysurfacecontroller/index

私の Global.asax は Umbraco.Web.UmbracoApplication を継承しています

私が間違っているかもしれないことについて誰か提案がありますか?

ありがとうございました

4

1 に答える 1

1

ここでいくつかのこと:

コントローラーの名前を「SurfaceController」で終了する必要はなくなりました。 から継承するだけSurfaceControllerです。

また、パス プレフィックスは必要ありません/Umbraco/surface//my/コントローラーがMyController.

編集:

コントローラーからページを提供する場合、コントローラーのパスを含めるように 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 ルーティングをオーバーライドしたくないため、これはコントローラーに固有のものであることが重要です。

于 2013-08-28T10:36:32.380 に答える