我有FormView并绑定到 CommandArgument 记录的属性ID:
CommandArguman='<%# Eval("Id") %>'
但在ItemCommand处理程序的服务器端,这不起作用:
int id = e.CommandArgument;
并获得错误:
指定的演员表无效。
但是这项工作:
int id = int.Parse(e.CommandArgument.ToString());
e.CommandArgument 的返回类型是Object,但为什么我不能将对象转换为int?
答案 0 :(得分:1)
如果没有像object
这样的具体演员,你就无法演员和int
到(int)e.CommandArgument
,你不能这样做,因为该对象是一个字符串。
你可以做到
int id = int.Parse((string)e.CommandArgument);
如果e.CommandArgument
是string
,但您不会再受益了,那么您的代码
实际上我会保留你的代码,因为如果对象为null或不是字符串,它将不会被抛出。你也可以使用安全的单词as
作为演员,但你也不会从中受益。
进一步学习搜索“cast”或阅读here