使用MVC创建可重用的UI组件

扬哈特曼

我正处于构建渲染框架的阶段,该渲染框架用于以不同格式渲染模型。

我的想法如下:

public class ResidenceRendererShort : IRender<Residence> {

    public string Format() {
        return "short";
    }

    public string Render(Residence content) {
        return content.Name; // Could return a whole lot of HTML
    }   
}

我可以使用多种格式,将它们全部使用Ninject DI注入到我的RenderingService中,在这里我可以找到使用正确方法进行渲染的方法,例如 FindRendererFor(Type type, string format)

现在我的问题是,如何在razor中创建一个将使用渲染服务并应用正确渲染的标签?我一直在研究HtmlHelpers,但是它们是静态方法,因此无法RenderingService对此进行介绍。

我以为我可以创建类似的东西:

@Model my.namespace.Residence
@Html.RenderObject(Model, "short");

我是否缺少某些东西,或者有人对如何完成此操作有想法?

克里斯·普拉特

你是在自杀 只需使用显示/编辑器模板。在这种情况下,如果您在类中有一个视图~/Views/Shared/DisplayTemplates~/Views/Shared/EditorTemplates以该类命名Residence.cshtml,则Razor会在每次将类传递给Html.DisplayFor时使用此视图来呈现您的类Html.EditorFor

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用simpleSchema创建可重用组件

使用 scalatags 创建可重用的组件

在ASP.NET MVC中使用Razor创建可重用的HTML视图组件

UiBinder如何:在ui.xml中创建可重用组件

如何使用 React 和 TypeScript 创建可重用的 Input 组件?

在React Native中创建可重用组件?

角度创建输入组件可重用

如何创建可重用的Form Vue组件

在Angular中创建可重用的按钮组件

Angular 8、9:如何阻止在页面中使用多个时间的单个可重用组件(集成ng-block-ui)| 即。创建多个实例?

在使用 <slot/> 的组件内部使用 v-for 创建可重用和动态的 Tab 菜单

在 React 中使用 Typescript 使组件可重用

使用React Redux mapStateToProps的可重用组件

无法在UI5中使用可重用对话框:无法加载容器组件

如何使用Ionic 3和Angular 4创建可重用组件

如何使用 Javascript 在 ASP.NET Core 中创建可重用组件

如何使用Redux-Form v6创建可重用的表单组件组?

Angular可重用组件

iOS可重用组件

VueJS:在可重用组件中使用多个组件

我可以创建在Android XML布局的可重用的组件?

创建自定义的可重用视图组件 android Kotlin

创建一个可重用的组件 reactjs

如何在React中创建可重用的目录组件

如何在VueJs中创建可重用组件?

尝试在Angular中创建可重用表单组件时出错

创建具有动态子级的可重用组件

创建Angular Material Table的可重用组件并更改其表头

如何使用ReactJS创建可重用的插件