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 – 为什么我应该使用telerik radcontrols而不是vis
- asp.net-mvc – 为什么必须将LESS文件设置为Build Action“
- asp.net-mvc – 如何向ASP.NET MVC2控制器发送包含冒号的GE
- asp.net – 当页面加载是AJAX历史记录点的结果时,如何检测客
- ASP.NET-MVC(IIS6)高流量时出错:指定的强制转换无效
- asp.net – 尝试设置此报告中未定义的报告参数“名称”?
- 从代码隐藏调用ASP.NET Web API
- asp.net-mvc – 如果在Razor MVC 3中浏览器未继承视图时如何
- 将ASP.Net MVC的单页添加到现有的Web窗体应用程序中?
- asp.net – 多个项目Visual Studio 2015 npm
- 如何创建ASP.NET Web场?
- asp.net – 通配符HttpHandler不处理静态文件
- asp.net-mvc – JQuery中的ViewBag
- asp.net – 如何将aspx webform上的所有控件转换
- asp.net – MVP模式和会话值
- asp.net-mvc-3 – MVC EditorFor命名模板的问题
- asp.net-mvc-3 – 偶数和奇数表行与Razor
- asp.net-mvc – ASP.NET MVC获取具有特定配置文件
- asp.net-mvc – 防止用户在asp.net模型验证中输入
- asp.net-mvc – 带有dropdownList的Telerik网格