我想根据 DataRow 值设置一个按钮 id,该值可能有一些特殊字符,所以我有一个函数,
string ConvertNameToId( DataRow _row )
{
return Regex.Replace( _row[ "SpecificColumnName" ].ToString( )
, "[^A-Z0-9a-z]", "_" );
}
然后,在我的标签中,我有
id="@ConvertNameToId( row )"
这对id="WHAT_EVER"
我有用,但是当我在构建标签时使用 if-then 逻辑时,如果我对该函数有多个引用,我会收到警告“此页面上的另一个对象已使用 ID '@ConvertNameToId(row)'。像这样:
if ( boolValue )
{
<td><button id="@ConvertNameToId( row )">...</button></td>
}
else
{
<td><button id="@ConvertNameToId( row )">...</button></td>
}
我尝试让函数通过 string.Format 提供引号,这样我就可以id=@ConvertNameToId( row )
在没有引号的情况下使用,但后来我得到了id="WHAT_EVER"
.
我并不是说以这种方式分配 id 是个好主意。我只是问如何在没有警告或将其转换为"
. 事实上,我的代码正在运行;我只是认为可以采取更好的方法来避免警告。