惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
博客园_首页
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
The Cloudflare Blog
罗磊的独立博客
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
博客园 - 叶小钗
The GitHub Blog
The GitHub Blog
Last Week in AI
Last Week in AI
J
Java Code Geeks
MyScale Blog
MyScale Blog
G
Google Developers Blog
U
Unit 42
Y
Y Combinator Blog
P
Proofpoint News Feed
Vercel News
Vercel News

博客园 - Net205 Blog

我第1个可用的golang小程序 我们怎么做不到呢? Top 7 Coding Standards & Guideline Documents For C#/.NET Developers .Net开发人员必须避免的5个常见的编程错误 You are doing Scrum but the Scrum Master tells the team what to do! 使用扩展方法 使用Javascript制作一个始终可见的区域 阅读优秀代码是提高开发人员修为的一种捷径[收藏] SQL SERVER – Difference between COUNT(DISTINCT) vs COUNT(ALL) SQL Performance MSSQL删除重复数据 jQuery QUnit 万月薪的英语人是如何练成的!!!讲一口漂亮流利的英语[转] 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 asp.net Interview Questions - Net205 Blog jQuery资源 strip invalid xml characters - Net205 Blog 翻译工具,您选哪个?
Asp.net Mvc中使用HTML 5 data属性
Net205 Blog · 2011-09-15 · via 博客园 - Net205 Blog

意译:http://dotnet.dzone.com/news/using-html-5-data-attributes

HTML 5的data属性是一种在DOM元素中存储数据的方式,例如我们有一个用户列表,为客户端以后使用想存储用户Id。

1 <ul>
2 <li data-id=”4” data-role=”admin”>thorsteinsson</li>
3 <li data-id=”23” data-role=”user”>john</li>
4 </ul>
public class User
{
public int Id { get; set; }
public string Role { get; set; }
public string Username { get; set; }
public string Password { get; set; }
}

  这样使用:

<ul>
<% foreach (var user in Model.Users) { %>
<li <%= Html.ToDataAttributes(user) %>><%=user.Username%></li>
<% } %>
</ul>

  如果我们想在html标签中不显示用户名和密码,可以跳过它:

<%= Html.ToDataAttributes(user, new { “Username”, “Password” }) %>

  扩展方法的完整代码:

public static string ToDataAttributes(this HtmlHelper helper, object obj)
{
return helper.ToDataAttributes(obj, new string[] {});
}
public static string ToDataAttributes(this HtmlHelper helper, object obj, IEnumerable<string> skip)
{
StringBuilder builder
= new StringBuilder();
Type t
= obj.GetType();
foreach (var field in t.GetProperties())
{
if (skip.Contains(field.Name)) continue;

var value

= field.GetValue(obj, null);
if (value != null)
{
builder.Append(
" data-").Append(field.Name.ToLower()).Append("=\"").Append(helper.AttributeEncode(value)).Append("\"");
}
}
return builder.ToString();
}