c# - ASP.Net Core 中的模板化

标签 c# asp.net-mvc razor asp.net-core-mvc

我在 asp.net core 中创建“子”模板时遇到问题。 这个想法是在模板文件中定义一个完整的 html-bootstrap-block 并在另一个父/主 cshtml 文件中调用它。

ViewModel Person(填写 Controller )

namespace RazorTemplating.Models.HomeViewModels
{
    public class Person
    {
        [Required]
        [MinLength(2)]
        public string Firstname { get; set; }

        [Required]
        [MinLength(2)]
        public string Lastname { get; set; }

        [MaxLength(3)]
        public int Age { get; set; }

        public Group MainGroup { get; set; }
    }
}

Controller 调用的主视图(Index.cshtml)

编辑:输入模板标签引用自定义标签助手。

@model RazorTemplating.Models.HomeViewModels.Person

<div class="row">
    <input-template for="Firstname" />
</div>
<div class="row">
    <input-template for="Lastname" />
</div>
<div class="row">
    <input-template for="Age" />
</div>
<div class="row">
    <input-template for="MainGroup" />
</div>

Inputbox Bootstrap 模板文件 (InputBootstrapTemplate.cshtml)

@model dynamic

<div class="form-group">
    <label asp-for="@Model" class="col-md-2 control-label"></label>
    <div class="col-md-10">
        <input asp-for="@Model" class="form-control" />
        <span asp-validation-for="@Model" class="text-danger"></span>
    </div>
</div>

我如何从input-template-标签帮助器填充模板文件的动态模型?

编辑:ASP.NET Core 中的模板提前发生了一些变化 https://github.com/aspnet/Razor/issues/788

最佳答案

据我了解,您想要渲染诸如自定义控件之类的内容。例如,用一行包装一些 html、标签、输入来呈现控件。正确的?在这种情况下tag helpers非常适合您的需求。

您还可以看看新功能 - view components 。它就像小型(一个 Action ) Controller + View 对。渲染 block 是很好的,比如新闻、最后添加的评论等。

欢迎询问详情。

关于c# - ASP.Net Core 中的模板化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37674824/

相关文章:

c# - xsl -fo 转pdf

c# - 何时检查,何时不检查 ModelState.IsValid

asp.net - 数据注释构造函数注入(inject)

asp.net-mvc - @ : mean in ASP.net MVC Razor 是什么?

.net - 在 Razor 网页的 View 中调用方法

C# OpenXml 接受 .docx 中的所有修订

c# - 数据绑定(bind) DataGridView 显示新行符号

c# - 如何检索 MVC 页面上所有输入的所有值

c# - ASP.net Web Api 版本控制

c# - 使用 MVC Razor View 发送电子邮件