问题描述
我将 TagHelpers
合并到我的 MVC vNext 项目中,我意识到当我自行关闭 HTML 标签时它们不起作用.
I am incorporating TagHelpers
in my MVC vNext project, and I realized they don't work when I self close the HTML tags.
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"
<label asp-for="FirstName"/> <!-- self closing tag -->
<span asp-validation-for="FirstName"/> <!-- self closing tag -->
而且,当我放置结束标签时,我会看到正在显示的值.
And, insteand when I put the closing tags, I see the values being displayed.
<label asp-for="FirstName"></label>
<span asp-validation-for="FirstName"></span>
生成的 HTML
<label for="FirstName">FirstName</label>
<span class="field-validation-error" data-valmsg-for="FirstName" data-valmsg-replace="true">
<span id="FirstName-error" class="">The FirstName field is required</span>
</span>
我想知道什么,它有什么不同?而且,自我关闭配对标签是一个坏习惯.如果您知道一些关于此设计原则的文章,请与我分享,不胜感激.
What I want to know, what difference does it make? And, is self closing the paired tags a bad habit. If you know some article which talks about this design principle, please share with me, it would be much appreciated.
推荐答案
它们不起作用的原因是因为MVC 标签助手不会改变元素是否自动关闭"(来自问题中的评论 #4475).
The reason they do not work is because the "MVC tag helpers do not change whether an element is self-closing or not" (from comments in issue #4475).
这是 ASP.NET 中的一个已知问题,计划是在具有结束标记的非空元素的情况下在 VS IDE 中显示警告(请参阅问题 #398).一位 ASP.NET 开发人员在问题 #1302 中评论说:
It is a known issue in ASP.NET and the plan is to show a warning in VS IDE under the scenario of a non-void element having an end tag (see issue #398). One of ASP.NET developers commented in issue #1302 that:
这是当前的设计,但我们在行为上有一些问题(打开和关闭)"
"this is the current design but we have a few issues (open and closed) on the behaviour"
这篇关于Tag Helpers - 自关闭 HTML 标签是个坏习惯?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!