2016-06-07 132 views
2

我有一個問題在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

回答

2

據我瞭解,你要呈現類似的自定義控件。例如,使用一些包裝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 –