ASP.NET MVC htmlAttributes在HtmlHelpers

时间:2015-11-05 23:13:39

标签: asp.net-mvc asp.net-mvc-4 razor asp.net-mvc-5

在MVC中,几乎每个html助手都有重载,需要IDictionary<string, object> htmlAttributes个参数。在那里你可以传递anonymouse对象,属性将是 Razor 渲染页面后的input属性。

但是有些属性名称应该使用@ char进行转义。例如@class

@Html.TextBoxFor(x => x.MyProperty, new { @class = "my-class" })

是否有应该转义的此类单词列表?

它们是否随着 MVC 3,4,5和 Razor 版本的变化而变化?

对于不同的Html助手,它们是不同的吗?

另外,我想知道为什么如果有人可以解释,我们为什么要大声逃避这句话。

1 个答案:

答案 0 :(得分:0)

我认为您指的是保留标识符上下文标识符

  1. 保留标识符始终是C#中的保留关键字。
  2. 上下文关键字有时是C#中保留的关键字。
  3. 除了作为我们都理解的预定义标识符之外,不能在语言中使用保留标识符。如果不在保留它们的上下文中使用,则可以在程序中使用上下文标识符。

    与在程序上下文中用作关键字的任何单词一样,您需要在剃须刀中使用转义键@

      

    关键字是预定义的保留标识符,对编译器有特殊含义。它们不能用作程序中的标识符,除非它们包含@作为前缀。例如,@ if是有效的标识符,但如果不是因为if是关键字。

    我为您提供了两个保留和上下文修饰符的字母表列表。

    C# Keywords

    保留标识符

    • 抽象
    • 作为
    • BOOL
    • 断裂
    • 字节
    • 情况下
    • 捕获
    • 检查
    • 常量
    • 继续
    • 小数
    • 默认
    • 委托
    • 否则
    • 枚举
    • 事件
    • 显式
    • 的extern
    • 最后
    • 固定
    • 的foreach
    • 转到
    • 如果
    • 隐式
    • in(generic-modifier)
    • INT
    • 接口
    • 内部
    • 命名空间
    • 物体
    • 运算符
    • out(generic-modifier)
    • 倍率
    • PARAMS
    • 私有
    • 保护
    • 公共
    • 只读
    • REF
    • 返回
    • 为sbyte
    • 密封
    • 的sizeof
    • stackalloc
    • 静态
    • 字符串
    • 结构
    • 开关
    • 尝试
    • typeof运算
    • UINT
    • ULONG
    • 选中
    • 不安全
    • USHORT
    • 使用
    • 虚拟
    • 空隙
    • 易失性
    • ,而
      

    上下文关键字仅在有限的程序上下文中具有特殊含义,并且可以用作该上下文之外的标识符。通常,当新的关键字添加到C#语言时,它们会被添加为上下文关键字,以避免破坏早期版本中编写的程序。

    内容相关关键字

    • 添加
    • 别名
    • 异步
    • AWAIT
    • 动态
    • 获得
    • 全球
    • 加入
    • 的OrderBy
    • 部分(类型)
    • 部分(方法)
    • 除去
    • 选择
    • 设置
    • VAR
    • 其中(泛型类型约束)
    • where(查询条款)
    • 产量

    也希望在评论中承认Stephen Meucke's个贡献。