我刚刚开始学习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>
您不必从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);
}