自定义控制器Umbraco

问题描述 投票:1回答:1

我刚刚开始学习Umbraco,我已经开始了一个小项目,只是为了学习Umbraco。我在创建自定义控制器时遇到问题。我的页面上有一个链接供用户浏览所有产品:

@Html.ActionLink("View more", "Index", "Product", null, new { title = "Browse all Products" })

调节器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Umbraco.Web.Models;
using Umbraco.Web.Mvc;

namespace Test.Controllers
{
    public class ProductController : Umbraco.Web.Mvc.RenderMvcController
    {
        public override ActionResult Index(RenderModel model)
        {
            return View("Products");
        }
    }
}

由于某种原因,网页显示带有空白href的链接

<a href="" title="Browse all Products">View more</a>
asp.net-mvc-4 umbraco umbraco7
1个回答
0
投票

您不必从SurfaceController继承,因为它们通常用于呈现MVC子操作和处理表单数据提交。在你的情况下,继承Umbraco.Web.Mvc.RenderMvcController的控制器就足够了。

首先检查Umbraco的Settings部分,确保有一个名为Product的文档类型。 Umbraco遵循此约定进行路由,因此Product类型的所有页面都将路由到您的ProductController。此路由约定也可能有助于HtmlHelper正确构建操作链接。

根据documentation,映射的工作原理如下:

  • 文档类型名称=控制器名称
  • 模板名称=操作名称
  • 如果没有动作匹配或未指定,则执行“索引”动作。

最后,确保控制器操作返回模板视图。例如,如果使用默认的RenderModel类型,则只需返回文档类型的Template视图:

public override ActionResult Index(RenderModel model)
{
    return base.Index(model);
}
© www.soinside.com 2019 - 2024. All rights reserved.