gpt4 book ai didi

c# - 使用 Razor 或标签生成器在 Html Helper 中构建 Html?

转载 作者:太空狗 更新时间:2023-10-29 23:31:57 25 4
gpt4 key购买 nike

我正在 MVC 4 中构建一个 Html 助手,我想知道如何在 html 助手中正确构建标签/html。

例如,这里有一个简单的 html 帮助程序,它使用 TagBuilder 类创建图像标签:

public static MvcHtmlString Image(this HtmlHelper html, string imagePath, 
string title = null, string alt = null)
{
var img = new TagBuilder("img");
img.MergeAttribute("src", imagePath);
if (title != null) img.MergeAttribute("title", title);
if (alt != null) img.MergeAttribute("alt", alt);

return MvcHtmlString.Create(img.ToString(TagRenderMode.SelfClosing));
}

从另一方面我可以做这样的事情:

// C#:
public static MvcHtmlString Image(this HtmlHelper html, string imagePath,
string title = null, string alt = null)
{
var model = new SomeModel() {
Path = imagePath,
Title = title,
Alt = alt
};

return MvcHtmlString.Create(Razor.Parse("sometemplate.cshtml", model));
}

// cshtml:
<img src="@model.Path" title="@model.Title" alt="@model.Alt" />

哪个是更好的解决方案?

最佳答案

两者都是有效的,但我怀疑后者要慢得多,我正在尝试看看它比使用局部 View 有什么好处。

我的经验是 HtmlHelpers 应该只用于简单的标记;任何更复杂的东西都应该使用部分 View 和子操作。

关于c# - 使用 Razor 或标签生成器在 Html Helper 中构建 Html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18214347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com