在ASP.Net核心模板

问题描述:

我有一个问题在asp.net核心创建一个“子”模板。 这个想法是在模板文件中定义一个完整的html-bootstrap块,并在另一个父/主cshtml文件中调用它。在ASP.Net核心模板

视图模型的人(填充在控制器)

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; } 
    } 
} 

由控制器称为主视图(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> 

输入框引导模板文件(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> 

我如何填写模板文件中的动态模型,从输入模板 - 标签帮手?

编辑:一些预先的模板改变ASP.NET核心https://github.com/aspnet/Razor/issues/788

据我了解,你要呈现类似的自定义控件。例如,使用一些包装html,标签,输入一行来呈现控件。对?在这种情况下,tag helpers适合您的需求非常好。

你也可以看看新功能 - view components。它就像小(一个动作)控制器+视图对。这是很好的渲染块,如新闻,最后添加评论等。

随时问细节。

+0

我知道,* *标签来自自定义标签助手。问题是:如何将ViewModel和Property传递给InputBoostrapTemplate.cshtml中的动态模型? –

+0

不知道:(我使用标签助手只从代码生成HTML:https://github.com/Platformus/Platformus/tree/master/src/Platformus.Barebone.Backend/Areas/Backend/Code/TagHelpers –