如何将对象传递给HTML属性?

var attrs = new { id = "myid", style = "color: Red;" };

如何将属性转换为如下字符串以将其嵌入HTML标记:

id="myid" style="color: Red;"

提前感谢:)

推荐答案

令人惊讶的是,这个功能是由RouteValueDictionary类提供的:

IDictionary<string, object> htmlAttributes = new RouteValueDictionary(attrs);

然后,您可以将本词典与TagBuilder结合使用,您可能会使用TagBuilder:

var tagBuilder = new TagBuilder("input");
tagBuilder.MergeAttributes(htmlAttributes);
tagBuilder.ToString(TagRenderMode.Normal);

您可以在ASP中看到这一点.NET MVC源代码本身;其中一个简单的例子是in TextAreaExtensions.cs.

EDIT:

为了正确地将"数据属性"转换为"数据属性",请使用AnonymousObjectToHtmlAttributes静态方法.

IDictionary<string, object> htmlAttributes = HtmlHelper.AnonymousObjectToHtmlAttributes(attrs);

Asp.net相关问答推荐

IIS 将旧用户名返回到我的应用程序

Web api 不支持 POST 方法

如何使图像的一部分成为可点击的链接

在 Blazor 中 Select 框绑定

配置转换和TransformXml 任务失败错误消息

如何通过后面的代码不显示

带有邮箱地址参数的 WebApi 方法从 HttpClient 返回 404

为什么aspx文件会返回404(找不到页面)

IIS Express 安装目录在哪里?

ASP.NET MVC Url Route 支持(点)

InvalidOperationException:无法为角色创建 DbSet,因为此类型未包含在上下文模型中

ServiceStack 示例应该以什么顺序被理解?

ASP .NET 单例

使用 Twitter Bootstrap 在 @html.actionlink 中显示 html

错误处理(向客户端发送 ex.Message)

如何清除 System.Runtime.Caching.MemoryCache

ASP.NET 邮箱验证器正则表达式

ASP.NET Web 窗体中的 jQuery 验证插件

使用 FileUpload Control 获取文件的完整路径

您将如何将 ASP.Net MVC 嵌入到现有的网站项目中?