自定义Razor Html属性

本文关键字:属性 Html Razor 自定义 | 更新日期: 2023-09-27 18:09:15

使用Razor html helper,添加自定义html属性似乎做得不好。

我正在编写支付网关集成和卡的详细信息需要在客户端加密。

典型的表单字段看起来像

  <input type="text" data-eway-encrypt-name="EWAY_CARDNUMBER" />

我试着用

复制这个
@Html.TextBoxFor(m => m.Card.CardNumber, new { @class = "form-control", @data-eway-encrypt-name = "EWAY_CARDNUMBER" })

但是没有运气,因为它会返回

CS0746:无效的匿名类型成员声明符。匿名类型成员必须使用成员赋值、简单名称或成员访问来声明。

任何想法?

自定义Razor Html属性

不能在属性名中使用破折号。使用下划线代替,它们将自动为您转换:

@Html.TextBoxFor(
    m => m.Card.CardNumber, new 
    { 
        @class = "form-control", 
        //@data-eway-encrypt-name = "EWAY_CARDNUMBER",
        data_eway_encrypt_name = "EWAY_CARDNUMBER",
    })

在下面使用:

@Html.TextBoxFor(
    m => m.Card.CardNumber, 
    new { 
        @class = "form-control", 
        data-eway-encrypt-name = "EWAY_CARDNUMBER",
    }
)

结果标记中的_将自动转换为-:

<input type="text" data-eway-encrypt-name="EWAY_CARDNUMBER" />