我在我的Umbraco应用程序中实现了一个Surface控制器(v6)但是,它不起作用。
这是简单的Hello World课程:
public class MySurfaceController : Umbraco.Web.Mvc.SurfaceController
{
[HttpGet]
public ActionResult Index()
{
return Content("hello world");
}
}
不幸的是,每当我访问它时,都会收到HTTP 404错误。我尝试了以下网址:
我的Global.asax继承自Umbraco.Web.UmbracoApplication
有没有人对我可能做错了什么有任何建议?
谢谢
答案 0 :(得分:1)
这里有几件事:
您不再需要结束控制器“SurfaceController”的名称,只需从SurfaceController
继承。
如果您的控制器被称为/Umbraco/surface/
,您也不需要路径前缀/my/
,您应该能够在MyController
访问Index()操作。< / p>
修改强>
假设您要从控制器提供页面,则需要修改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路由。