我正在尝试在表面控制器中编写一个子动作函数,该函数被宏调用以呈现 PartialView。
我需要在这个函数中访问我当前的页面属性,然后调整渲染的 PartialView。
我从 ubootstrap 上的 Jorge Lusar 代码中得到了这个,它在 HttpPost ActionResult 函数上运行良好:
var renderModel = (UmbracoRenderModel)ControllerContext.RouteData.DataTokens["umbraco"];
var currentPage = renderModel.CurrentNode.AsDynamic();
问题是我在[ChildActionOnly] PartialViewResult函数上抛出了这个错误:
Unable to cast object of type 'System.String' to type 'Umbraco.Cms.Web.Model.UmbracoRenderModel'.
on 'var renderModel = (UmbracoRenderModel)ControllerContext.RouteData.DataTokens["umbraco"];'
DataTokens["umbraco"] 中的数据似乎在两个函数之间发生变化。如果我在每一个上显示 DataTokens["umbraco"].ToString(),会发生以下情况:
在[ChildActionOnly] public PartialViewResult Init() -> "Surface"显示。
在[HttpPort] public HandleSubmit(myModel model) -> "Umbraco.Cms.Web.Model.UmbracoRenderModel"上显示。
感谢您在这里的任何建议。
尼古拉斯。