我已经在我的Umbraco应用程序(v6)中实现了一个表面控制器,但是它不起作用。
以下是简单的Hello类:
public class MySurfaceController : Umbraco.Web.Mvc.SurfaceController
{
[HttpGet]
public ActionResult Index()
{
return Content("hello world");
}
}不幸的是,每当我访问它时,我都会得到一个HTTP 404错误。我尝试了以下URL:
我的Global.asax继承自Umbraco.Web.UmbracoApplication
有人对我可能做错了什么有什么建议吗?
谢谢
发布于 2013-08-28 10:36:32
这里有几件事:
您不再需要结束控制器名称"SurfaceController",只需继承SurfaceController。
另外,您不需要路径前缀/Umbraco/surface/,如果控制器被称为MyController,您应该能够在/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路由。
https://stackoverflow.com/questions/18482680
复制相似问题