在ASP.NET MVC框架中,模板系统是处理视图数据展示和编辑的重要功能之一。它提供了显示模板和编辑模板两种类型,类似于WPF和Silverlight开发者所熟悉的模板系统。本文将详细解释如何在MVC中创建和使用这些模板。
模板系统使用DataType
作为标识符来选择适当的模板。为了使用模板,需要使用特定的语法,以便MVC能够调用模板选择。显示模板和编辑模板分别使用以下语法:
@Html.DisplayFor(m => m.Myproperty) // 显示模板
@Html.EditorFor(m => m.Myproperty) // 编辑模板
其中m
可以是视图的模型。
为了演示,将创建/修改数据类型为String
的编辑模板。在这个示例中,特意添加了一些CSS样式,以使显示模板和编辑模板看起来不同。
显示模板和编辑模板保存在Views\Shared\
特定的文件夹中。从上面的图中,可以看到为数据类型String
创建了显示和编辑模板。
显示模板的文件“String.cshtml
”包含以下内容:
@model String
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">显示模板</h3>
</div>
<div class="panel-body">
@ViewData.TemplateInfo.FormattedModelValue
</div>
</div>
编辑模板的文件“String.cshtml
”包含以下内容:
@model String
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">编辑模板</h3>
</div>
<div class="panel-body">
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue)
</div>
</div>
现在,将在视图中使用这些模板。为此,将创建一个单独的视图/控制器(TemplateDemoController
)以保持本教程的简单性。
创建了一个名为“Person
”的模型,其中包含一个string
属性“Name
”,并将其作为视图的模型传递。
public class TemplateDemoController : Controller
{
// GET: TemplateDemo
public ActionResult Index()
{
return View(new Person() { Name = "Some Name" });
}
}
在视图中,将使用DisplayFor
和EditorFor
帮助器来调用模板选择,以便在视图渲染时使用。
@model BootswatchDemo.Models.Person
@{
ViewBag.Title = "模板演示";
}
<h2>
@ViewBag.Title
</h2>
<div>
@Html.DisplayFor(m => m.Name)
</div>
<div>
@Html.EditorFor(m => m.Name)
</div>
编译并运行网站,然后导航到相应的视图以查看结果。使用此功能,人们将节省大量时间,通过为自定义类创建模板,而不是在每个视图中编写HTML。
希望本文能帮助理解MVC中模板的概念,并在项目/作业中对有所帮助。如果喜欢这篇文章,请分享或评论。欢迎提出建议。