gpt4 book ai didi

c# - ASP.NET MVC Helpers,将两个对象 htmlAttributes 合并在一起

转载 作者:IT王子 更新时间:2023-10-29 04:10:28 24 4
gpt4 key购买 nike

我有一种情况需要编写一个 HTML Helper 来扩展另一个 html 助手。通常,助手看起来像这样。

@Html.TextAreaFor(model => model.Content, new { @class = "some css", @data_bind = "some other stuff..."})

复制代码

这工作正常,但它必须包装在一些始终相同的其他 HTML 中。为了方便,我想把它封装起来,像这样。

public static MvcHtmlString CondensedHelperFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes) {
var stringBuilder = new System.Text.StringBuilder();
var tag = new TagBuilder("div"); tag.AddCssClass("some_css");
stringBuilder.Append(toolbar.ToString(TagRenderMode.SelfClosing));

stringBuilder.Append(htmlHelper.TextAreaFor(expression, htmlAttributes));
// more tags and such...

return new MvcHtmlString(stringBuilder.ToString());
}

stringBuilder.Append(htmlHelper.TextAreaFor... 行是我想要更改的。必须去那里的 CSS 类总是会出现.所以我宁愿把它包括在这里。但是我希望能够在顶级帮助程序中指定额外的 CSS 类。所以 ...

@Html.CondensedHelperFor(model => model.Content, new { @class = "some_other_css"})

并且始终存在的静态 css 通过 Helper 被覆盖。

有什么想法吗?

最佳答案

您可以使用标准的 MVC 辅助方法来做到这一点。

HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)

htmlAttributes 是一个对象

关于c# - ASP.NET MVC Helpers,将两个对象 htmlAttributes 合并在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6038255/

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