【问题标题】:How to create a View template for MVC?如何为 MVC 创建视图模板?
【发布时间】:2016-05-03 06:17:49
【问题描述】:

我的任务是为 MVC 中的视图创建模板。基本上,我们将只有一个接受通用模型并在编辑/显示模式下显示它的视图,而不是每个实体的多个视图 (CRUD)。

到目前为止,我已经玩过 IView、WebViewPage 和 ViewPage,但我似乎无法得到任何工作。我也搜索过类似的东西,但找不到真正有用的东西。

具体来说,我不知道我可以覆盖/实现哪个 C# 类来获得我想要的效果。有人可以帮我吗?

【问题讨论】:

    标签: c# templates model-view-controller dynamic-view


    【解决方案1】:

    使用 MVC 时,您通常拥有 Razor 视图 (.cshtml)。 这些有 4 种口味:

    • 完整浏览量
    • 部分视图
    • 编辑器模板
    • 显示模板

    根据您的问题,我认为您需要 EditorTemplates。

    在 Views/Shared/EditorTemplates 中创建一个新视图并将其命名为 YourGenericModel.cshtml 在这个文件里面写第一行:

    @model YourGenericModel
    

    您现在可以使用正常的 Razor 语法指定应该呈现的内容。

    要使用新视图显示模型,只需调用

    @Html.EditorFor(model => model.yourGenericModelInstance)
    

    【讨论】:

    • 这是默认视图。我正在寻找为通用模型创建视图。我可以使用反射来解析属性,然后动态地将控件添加到视图并将其发送到客户端。类似的东西。
    • 在 YourGenericModel.cshtml 中,您可以为每个属性调用 @Html.Editor(property, "someNameFromReflection")。使用 .GetType().GetProperties()... 遍历所有属性。
    • 好吧,也许我理解错了。我不明白,在使用泛型时如何使用“model.yourGenericModelInstance”?以及在传递需要 参数的通用模型时如何编写我的@model 声明?
    猜你喜欢
    • 2019-08-12
    • 2017-03-20
    • 2011-08-08
    • 2020-12-12
    • 2012-12-09
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多