Tagbuilder和@helper之间有什么区别
本文关键字:什么 区别 之间 @helper Tagbuilder | 更新日期: 2023-09-27 18:27:27
我不明白tagbuilder和@helper 之间的区别
例如:
@helper TestHelper(string name , string id , int value)
{
if(value>3)
{
<p name="@name" id="@id">@value</p>
}
}
助手可以创建一个标签,那么我们为什么或何时使用标签生成器呢?
@helper
用于定义视图中可重用的辅助方法。例如,在您的情况下,您已经定义了TestHelper
以基于某些条件生成<p>
标记,因此无论您在哪里需要<p>
标记,都可以调用TestHelper
方法。而TagBuilder
用于创建具有指定标签名称的新标签。例如,下面的扩展方法使用TagBuilder生成img输入。
using System.Web.Mvc;
using System.Web.Routing;
namespace MvcApplication1.Helpers
{
public static class ImageHelper
{
public static string Image(this HtmlHelper helper, string id, string url, string alternateText)
{
return Image(helper, id, url, alternateText, null);
}
public static string Image(this HtmlHelper helper, string id, string url, string alternateText, object htmlAttributes)
{
// Create tag builder
var builder = new TagBuilder("img");
// Create valid id
builder.GenerateId(id);
// Add attributes
builder.MergeAttribute("src", url);
builder.MergeAttribute("alt", alternateText);
builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
// Render tag
return builder.ToString(TagRenderMode.SelfClosing);
}
}
}
现在要渲染,可以将其定义为
@Html.Image("img1", <<Src of image>>, <<Name Of Image>>)
TagBuilder提供了添加类和合并属性的功能。你可以在这里阅读关于TagBulider的