我最近使用C#/ MVC构建了一个零售站点。我正在使用Umbraco重写同一零售站点。我有一个productfolder文档类型,并且我有一个带有包含产品的子文件夹的父/子文件夹结构。例如。 产品(根文件夹) 软饮料(父母文件夹) 常规(子文件夹) 胡椒博士(产品) 可乐(产品) 饮食(儿童夹) ...(产品)
这为我提供了一个不错的URL结构,例如:http://.../products/soft-drinks/regular或http://.../products/soft-drinks/diet-这些都将在这些子文件夹中列出产品。
一切正常,直到我开始调页。我意识到我可以使用Html.Action助手来设置URL,以便基本上附加?page =并检查视图中的查询字符串以检索要处理的页面。然后,我可以使用Linq根据页码,要显示的产品数量等来拉回项目。
但是,由于我已经有了一个真实的网站,我希望能够将其替换为umbraco网站,并使我的所有SEO链接都能正常工作。由于这一要求,我需要将我的网址设为:http://.../products/soft-drinks/regular/2,其中“ 2”是要显示的页面。
当前,我想出的是创建一个这样的Surface控制器:
public class ProductFolderController : SurfaceController
{
// GET: ProductFolder
public ActionResult Paging(int nextPage, int currentPageId)
{
ViewBag.Page = nextPage;
ViewBag.CurrentPageId = currentPageId;
return PartialView("~/Views/Partials/_Paging.cshtml");
}
}
然后,我可以使用Razor创建一个分页链接以传递到下一页,在ViewBag中进行设置,然后在重新加载productfolder视图时获取它。但是,这不允许我控制URL。
使用Umbraco 7.4.3和MVC进行此操作的正确方法是什么?