0

我正在尝试在 dotvvm 母版页中渲染类似剃刀的渲染部分。但从文档中什么也没找到,但以下内容:

母版页嵌套

您还可以将母版页嵌套在另一个母版页中,依此类推。只需在母版页中使用 @masterPage 指令来指定父母版页。

基本上我想呈现导航菜单,该菜单将在我的父母版页的另一个母版页中定义。

4

1 回答 1

1

我认为您正在寻找标记控件,请参阅文档了解更多详细信息:https ://www.dotvvm.com/docs/tutorials/control-development-markup-only-controls/2.0

简而言之,标记控件允许您在 dothtml 文件中声明自定义控件。您可以在标记控件中使用所有 DotVVM 功能,如果您想使用数据绑定,您只需明确声明应如何传递来自视图模型的数据。

一个极简的标记控件可能如下所示:

<!-- The control must be used when data context is this view model: -->
@viewModel Full.Name.Of.MyViewModelBase

<ul class=menu>
    <li>{{value: NameOfSomething}}</li>
    <li>...</li>
</ul>

然后,必须注册该控件,以便 DotVVM 可以找到它:

// in DotvvmStartup

config.Markup.AddMarkupControl(tagPrefix: "cc", tagName: "MyMenu", "Views/MyMenu.dotcontrol");

之后,您可以在任何您想要的地方使用控件(好吧,递归仅在某些时候有效):

<cc:MyMenu />

您还可以声明属性,然后在控件中使用它。它可能有助于控件的可重用性,因为视图模型不必适合。我会把它留给文档

于 2019-08-28T16:51:20.067 回答