无法将HiddenField转换为Int32

时间:2012-10-04 05:16:34

标签: c# type-conversion

我遇到了数据类型转换的问题,我只能弄清楚

 HiddenField hfFriendId = item.FindControl("hfFriendId") as HiddenField;
 Int32 FriendId = Convert.ToInt32(hfFriendId.Value);

我需要在下面的

中使用FriendId和int32
UserInfo TargetUser = UserController.GetUserById(PortalSettings.PortalId, FriendId);

因为两个args都应该是int32。 当我调试这个'TargetUser'时为空。

问题可能是什么?

1 个答案:

答案 0 :(得分:1)

如果您不确定隐藏字段中的可用值,则不要使用

Int32 FriendId = Convert.ToInt32(hfFriendId.Value);

尝试

int FriendId = int.Parse(hfFriendId.Value); // will throw exception if parse fails

或更好

int FriendId ;
if(int.TryParse(hfFriendId.Value, out FriendId))
     //get userinfo

如果转换获得解析后的值并且未返回零,那么您的UserController.GetUserById方法可能会出现问题。