我想在我的剃刀视图中打印一个链接,该链接带有项目的 id 编码。所以我做了一个扩展方法来将 int 编码为 base64 字符串。
代码如下:
@Html.ActionLink("Delete Item", "Delete", new{ idItem = item.IdItem.EncodeTo64() })
item.IdItem是一个 int,但是当我使用动态变量时,EncodeTo64()方法不被识别为 int 变量的扩展方法。它返回一个错误:
“int”没有“EncodeTo64”的定义
所以,我找到了一个解决方案:强制转换动态变量,如下所示:
@Html.ActionLink("Delete Item", "Delete", new{ idItem = ((int)item.IdItem).EncodeTo64() })
它有效,但我不喜欢这个解决方案......你知道有什么方法可以避免这种演员阵容并让它发挥作用吗?
谢谢!
编辑:
这是扩展方法:
public static string EncodeTo64(this int number)
{
byte[] encoded = System.Text.Encoding.UTF8.GetBytes(number.ToString());
return Convert.ToBase64String(encoded);
}