加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – vmb项目内的Umbraco表面控制器

发布时间:2020-12-15 21:55:42 所属栏目:百科 来源:网络整理
导读:我已经在我的Umbraco应用程序(v6)中实现了Surface控制器,但是它不起作用. 这是简单的Hello World类: public class MySurfaceController : Umbraco.Web.Mvc.SurfaceController{ [HttpGet] public ActionResult Index() { return Content("hello world"); }}
我已经在我的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路由.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读