[英]What is the difference between Tagbuilder and @helper
我不明白tagbuilder和@helper有什么區別
例如:
@helper TestHelper(string name , string id , int value)
{
if(value>3)
{
<p name="@name" id="@id">@value</p>
}
}
助手可以創建標簽,那么為什么或何時使用tagbuilder?
@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>>)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.