gpt4 book ai didi

asp.net-mvc-2 - 如何连接多个 MvcHtmlString 实例

转载 作者:行者123 更新时间:2023-12-03 05:29:16 24 4
gpt4 key购买 nike

由于在 MSDN 中找到了此信息,我对如何连接 MvcHtmlString 实例有一些疑问。 :

MvcHtmlString Class Represents an HTML-encoded string that should not be encoded again

当使用这样的代码时,我是否会面临字符串被 HTML 编码两次的风险:

var label = Html.LabelFor(model => model.Email);
var textbox = Html.TextBoxFor(model => model.Email);
var validation = Html.ValidationMessageFor(model => model.Email);

var result = MvcHtmlString.Create(
label.ToString() + textbox.ToString() + validation.ToString());

(注意:这应该进入 HtmlHelper 扩展方法以减少 View 中的代码重复)。

最佳答案

太糟糕了,C# 不允许我们在这里重写 + 运算符!使用扩展方法怎么样?

public static MvcHtmlString Concat(this MvcHtmlString first, params MvcHtmlString[] strings)
{
return MvcHtmlString.Create(first.ToString() + string.Concat(strings.Select(s => s.ToString())));
}

这可能可以优化,但您可以使用它运行。通过单元测试来证明这不会对字符串进行双重编码应该是相当简单的。

使用示例:

label.Concat(textbox, validation)   

现在我的博客有一个无耻的插件:Use TagBuilder or HtmlTags to clean up your HTML

关于asp.net-mvc-2 - 如何连接多个 MvcHtmlString 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3460762/

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