我已经在我的Umbraco应用程序(v6)中实现了Surface控制器,但是它不起作用.
这是简单的Hello World类:
public class MySurfaceController : Umbraco.Web.Mvc.SurfaceController { [HttpGet] public ActionResult Index() { return Content("hello world"); } }
不幸的是,每当我访问它时,都会收到HTTP 404错误.我尝试了以下网址:
> / Umbraco /表面/我的
> / Umbraco / surface / mysurface
> / Umbraco / surface / mysurfacecontroller
> / Umbraco / surface / my / index
> / Umbraco / surface / mysurface / index
> / Umbraco / surface / mysurfacecontroller / index
我的Global.asax继承自Umbraco.Web.UmbracoApplication
有没有人对我可能做错了什么有任何建议?
谢谢
解决方法
这里有几件事:
您不再需要结束控制器“SurfaceController”的名称,只需从SurfaceController继承即可.
此外,您不需要路径前缀/ Umbraco / surface /,如果您的控制器被称为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路由.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。