zoukankan      html  css  js  c++  java
  • Asp.net Mvc中使用HTML 5 data属性

    意译: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();
    }

      


    作者:Net205
    出处:http://net205.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    缓存
    json集合取值
    四个div块点击某个突出显示
    table获取某一列的td
    鼠标悬浮tr追加背景颜色
    jquery弹出层
    面试题
    表单校验及正则表达式
    jquery操作DOM
    jquery的事件与动画
  • 原文地址:https://www.cnblogs.com/net205/p/2176829.html
Copyright © 2011-2022 走看看