将当前模型向下传递到更具体的形状
Pass the current Model down to a more specific shape
TL;DR:如何将模型传递到下一个形状?
我修改了我的主题 (Views\Orchard.Search\Search\Index.cshtml
) 中的 Orchard.Search 模块搜索结果视图,并将其拆分为几个场景。我测试了一个结果,然后直接重定向并测试没有搜索词和多个搜索结果。
我想将这些场景放在单独的 .cshtml
视图中,但这些特殊形状需要访问主搜索结果模型 (@model Orchard.Search.ViewModels.SearchViewModel
)。
我尝试使用 Arguments.From
来制作一个可以工作的动态对象,但随后我必须将视图中的所有内容转换回其正确的数据类型,因为下一个形状会考虑其上的每个 属性模型的类型为 dynamic
。
相反,我试图弄清楚如何将整个 Model
传递到下一个形状:
@if (HasMultipleResults())
{
var shapeFactory = (IShapeFactory)New;
// this doesn't work
var multipleResultsShape = (dynamic)shapeFactory.Create("Search_MultipleResults", Model);
@Display(multipleResultsShape);
return;
}
我还没有找到让它工作的方法,有人可以教我吗?
如果动态方法的第一个参数是一个类型,那么它将被用作模型。
New.YourShape(typeof(YourType))
有关详细信息,请观看此视频:https://www.youtube.com/watch?v=gKLjtCIs4GU&feature=youtu.be&t=1127
TL;DR:如何将模型传递到下一个形状?
我修改了我的主题 (Views\Orchard.Search\Search\Index.cshtml
) 中的 Orchard.Search 模块搜索结果视图,并将其拆分为几个场景。我测试了一个结果,然后直接重定向并测试没有搜索词和多个搜索结果。
我想将这些场景放在单独的 .cshtml
视图中,但这些特殊形状需要访问主搜索结果模型 (@model Orchard.Search.ViewModels.SearchViewModel
)。
我尝试使用 Arguments.From
来制作一个可以工作的动态对象,但随后我必须将视图中的所有内容转换回其正确的数据类型,因为下一个形状会考虑其上的每个 属性模型的类型为 dynamic
。
相反,我试图弄清楚如何将整个 Model
传递到下一个形状:
@if (HasMultipleResults())
{
var shapeFactory = (IShapeFactory)New;
// this doesn't work
var multipleResultsShape = (dynamic)shapeFactory.Create("Search_MultipleResults", Model);
@Display(multipleResultsShape);
return;
}
我还没有找到让它工作的方法,有人可以教我吗?
如果动态方法的第一个参数是一个类型,那么它将被用作模型。
New.YourShape(typeof(YourType))
有关详细信息,请观看此视频:https://www.youtube.com/watch?v=gKLjtCIs4GU&feature=youtu.be&t=1127