2015-04-24 63 views

回答

4

标签助手的出现有几个原因。 Scott Hanselman talks in length about them here.但是,Tag Helpers的要点包括:

前端开发人员不需要C#知识来编写它们。

以下对于传统的前端开发人员来说确实不是很直观。

@Html.LabelFor(m => m.Title, new { @class = "control-label" }) 
@Html.TextBoxFor(m => m.Title, new { @class = "form-control" }) 

然而,使用标签佣工得到更加明确:

<label asp-for="Title" class="control-label" /> 
<input asp-for="Title" class="form-control" /> 

请注意,这是在去年的磁通我检查,包括是否使用asp-前缀。

它可以更容易地添加其他属性,如class,placeholder甚至其他自定义属性。

我用我的项目angular.js;为此,语法变得更加扑朔迷离:

@Html.TextBoxFor(m => m.Title, new { @class = "form-control", ng_model = "ctrl.title" }) 

现在是作为添加属性一样简单,像我们所期待:

<input asp-for="Title" class="form-control" ng-model="ctrl.title" /> 

你甚至可以自己编写。

我不打算深入这里,但是您可以创建服务器端扩展小部件,甚至可以匹配您的客户端框架以实现SEO目的。有一个相当不错的tutorial for making tag helpers

+0

如果需要,前端开发人员可以学习一点C#。没有开发者应该害怕学习。您可以编写自己的Razor语法并添加到自己的属性中。我认为真正的原因是因为它使你的标记看起来像标记而不是黑客。 – Phil

0

恕我直言,最大的原因是它使你的标记更清洁;看起来不像服务器端代码,更像HTML5。