我对 Umbraco 越来越失望。我已经在 Umbraco 项目上工作了一段时间,但我一直无法弄清楚如何解决我的问题(其中之一)。
场景- 我有一个内容管理页面,用户可以在这个页面上搜索东西(这些东西来自与 Umbraco 完全不同的数据库)。这很好,我创建了一个子操作来加载搜索表单并创建返回结果的控制器方法。但是,我需要将每个结果链接到另一个采用 ID 的内容托管页面(每个结果的相同内容托管页面),以便我可以将一些动态数据注入到内容托管页面中。
太好了,我有一种方法可以在我的表面控制器中处理此请求,并且我可以为每个结果创建一个 Html.ActionLink,当单击时使用 id 参数触发我的控制器操作。
问题- 当每个链接被点击时,被点击的 url 是
http://localhost:5645/umbraco/surface/{controllername}/{actionname}/?id={id}
但是这个请求在 Umbraco 上下文之外,所以当我尝试使用以下控制器代码返回任何页面时,我收到以下错误:
[ActionName("ShowDetials")]
public ActionResult GetProperty(int propertyId)
{
return View("~/Views/TestView.cshtml");
}
当 UmbracoContext.PageId 为空时,无法呈现宏。
所以我最初的想法是拥有一个从 Umbraco.Web.Mvc.RenderMvcController 继承的单独控制器并尝试在其中处理请求,但这会引发其他问题,例如无法使用 @Html.ActionLink 链接到 RenderMvcController,我也不希望有两个控制器来处理来自同一部分的内容。
我遇到的其他问题是将自定义模型传递给视图。
如果有人可以帮助我,我将永远感激不尽。