asp.net核心 – ASP.Net MVC 6中使用Tag Helpers的优点是什么?
|
道歉我在asp.net mvc我不是很好,我想承认.我刚刚看到一个很好的写作,从 this url的asp.net 5新功能. 从那时起,我听说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元素的控制.虽然方便,MVC使用的Html助手在尝试做未建的事情时会产生问题.在MVC5中使用TextBox时可以看到一个简单的例子: @Html.TextBoxFor(m => p.Name) 生成的HTML标记如下所示: <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中存在问题.希望标签助手的实现已经足够了,我们将来可以避免它们. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET MVC – 如何实现可重用的用户控件和维护DRY?
- asp.net-mvc – 人们如何使用编辑器/显示模板与Html助手?
- asp.net-mvc – 如何创建从httpget获取相同参数的httppost?
- ASP.NET会话超时测试
- 使用什么方法将ASP.Net应用程序部署到野外?
- asp.net – 如何将http请求转发到https网址
- asp.net-mvc – 不需要必需属性的bool属性
- asp.net – CheckBoxList滚动条
- asp.net-mvc-3 – 有没有办法通过html.actionlink在ASP.NET
- ASP.Net MVC – 为什么要为favicon.ico创建一个控制器?
