VS2022 scaffolding视图生成ASP语法而非Razor语法,是否为新特性?
问题解答
核心结论
这不是VS2022的独家新特性——**标签助手(Tag Helpers)**早在ASP.NET Core 1.0就已引入,后续版本的Visual Studio(包括VS2022)只是将它设为视图脚手架的默认生成语法,取代了传统的HTML帮助器(Html Helpers)。
两种语法的区别与定位
- 标签助手的语法更贴近原生HTML,可读性更强,比如你看到的
<form asp-action="Index">、<input asp-for="TracisNum">,和@Html.BeginForm、@Html.TextBoxFor功能完全等价:都负责生成对应HTML、处理模型绑定、验证逻辑。 - 传统Html Helpers是ASP.NET MVC时代的产物,ASP.NET Core仍保留对它的支持,但官方更推荐使用标签助手。
如何改回生成Html Helpers代码?
在VS2022添加视图的流程里,选择模板后点击**"高级"按钮,勾选"使用HTML帮助器"**选项,脚手架就会生成@Html.BeginForm、@Html.TextBoxFor这类代码。
你提供的脚手架生成代码(标签助手版本)
<form asp-action="Index"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="TracisNum" class="control-label"></label> <input asp-for="TracisNum" class="form-control" /> <span asp-validation-for="TracisNum" class="text-danger"></span> </div> </form>
内容的提问来源于stack exchange,提问作者SDanks
相关产品推荐
相关产品推荐

