asp.net核心 – ASP.Net MVC 6中使用Tag Helpers的优点是什么?

前端之家收集整理的这篇文章主要介绍了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中存在问题.希望标签助手的实现已经足够了,我们将来可以避免它们.

原文链接:https://www.f2er.com/aspnet/250559.html

猜你在找的asp.Net相关文章