在ASP.Net核心中模板化

时间:2016-06-07 08:57:15

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

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

ViewModel Person(填入控制器)

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)

修改输入模板 -tags引用自定义标记帮助程序。

@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>

如何从输入模板 -tag帮助程序填充模板文件的动态模型?

编辑:事先在ASP.NET Core https://github.com/aspnet/Razor/issues/788

中进行模板化

1 个答案:

答案 0 :(得分:2)

据我了解,您希望渲染类似自定义控件的内容。例如,渲染控件包含一些包装html,标签,输入一行。对?在这种情况下,tag helpers非常适合您的需求。

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

随时询问详情。