从那时起,我听说ASP.Net MVC 6中有一个名为“帮助者”的术语,我看到有人在开发人员以下创建表单之前说:
@model MyProject.Models.Product @using (Html.BeginForm()) { <div> @Html.LabelFor(m => p.Name,"Name:") @Html.TextBoxFor(m => p.Name) </div> <input type="submit" value="Create" /> }
现在人们可以用下面的方式用tag helper编写相同的代码
@model MyProject.Models.Product @addtaghelper "Microsoft.AspNet.Mvc.TagHelpers" <form asp-controller="Products" asp-action="Create" method="post"> <div> <label asp-for="Name">Name:</label> <input asp-for="Name" /> </div> <input type="submit" value="Save" /> </form>
他们使用几个新的语法,称为asp-controller,asp-for等,但它会做什么?使用这种新的语法asp-controller,为什么人们会受益匪浅
所以请一些帮助我了解这个新的标签助手概念,以及如何使开发人员的生活更轻松.谢谢.
解决方法
@Html.TextBoxFor(m => p.Name)
<input class="form-control" id="Name" name="Name" type="text" value="">
尼斯和简单但是如果要添加占位符属性怎么办?如果要使用bootstrap的验证状态怎么办?如果您有一些需要自定义属性的第三方超酷javascript库,该怎么办?在MVC5的初始版本中,这些都不可能.尽管他们最终以htmlAttributes的形式通过更新添加.即使现在添加自定义属性也是最好的.
@Html.TextBoxFor(m => p.Name,new {@class="form-control has-error",placeholder="Enter Name",superCoolFeature="Do something cool"})
虽然你可以认为这是直接的HTML代码,但它不再是一个显着的优势.更糟糕的是,这个解决方案仍然不能覆盖相当普遍的属性中的破折号.如果你需要他们,你会被困在一个解决方案,如ActionLink htmlAttributes
我已经通过自定义编辑器修复了这些缺陷的路线,并尝试构建我自己的TextBox控件.很明显,替换所包含的TextBox模板需要大量的工作.更糟糕的是,您的模板必须了解您要添加的任何扩展名.
似乎将Bootstrap和其他第三方工具包含在MVC中已经使得更加明显的是,目前的设计在扩展需要修复的HTML中存在问题.希望标签助手的实现已经足够了,我们将来可以避免它们.
原文地址:https://www.jb51.cc/aspnet/250559.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。