首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >v6项目中的Umbraco曲面控制器

v6项目中的Umbraco曲面控制器
EN

Stack Overflow用户
提问于 2013-08-28 08:17:32
回答 1查看 2.6K关注 0票数 4

我已经在我的Umbraco应用程序(v6)中实现了一个表面控制器,但是它不起作用。

以下是简单的Hello类:

代码语言:javascript
复制
public class MySurfaceController : Umbraco.Web.Mvc.SurfaceController
{
    [HttpGet]
    public ActionResult Index()
    {
        return Content("hello world");
    }
}

不幸的是,每当我访问它时,我都会得到一个HTTP 404错误。我尝试了以下URL:

  • /Umbraco/表面/我
  • /Umbraco/表面/米表面
  • /Umbraco/表面/肌表面控制器
  • /Umbraco/surface/my/index
  • /Umbraco/surface/mysurface/index
  • /Umbraco/表面/肌表面主计/指数

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

有人对我可能做错了什么有什么建议吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-28 10:36:32

这里有几件事:

您不再需要结束控制器名称"SurfaceController",只需继承SurfaceController

另外,您不需要路径前缀/Umbraco/surface/,如果控制器被称为MyController,您应该能够在/my/上访问MyController()操作。

编辑:

假设您希望从控制器中提供页面,则需要修改web.config AppSetting条目,以包括控制器的路径

代码语言:javascript
复制
<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/my" />

您还需要从global.asax中专门为控制器注册一条路由:

代码语言:javascript
复制
routes.MapRoute(
    name: "Default",
    url: "my/{action}/{id}",
    defaults: new { action = "Index", id = UrlParameter.Optional }
);

重要的是,这是特定于您的控制器,因为您不希望它覆盖任何Umbraco路由。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18482680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档