MVC3 / C# - 无效的强制转换异常 - 指定的强制转换无效

时间:2012-06-28 19:38:12

标签: c# asp.net-mvc-3 .net

任何人都知道如何解决此错误?

指定的演员表无效。

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:System.InvalidCastException:指定的强制转换无效。

以下是破解的代码行 -

var id = (int)httpContext.Request.RequestContext.RouteData.Values["id"];

3 个答案:

答案 0 :(得分:5)

httpContext.Request.RequestContext.RouteData.Values["id"]可能是一个字符串,因此您需要解析它:

var idStr=(string)(httpContext.Request.RequestContext.RouteData.Values["id"]);
int id;
if(int.TryParse(idStr, out id))
{
    //w00t
}

答案 1 :(得分:1)

您的值httpContext.Request.RequestContext.RouteData.Values["id"]可能没有等效的int。

如果它是一个字符串,就像消费者所说,你会尝试,

var id = int.Parse("httpContext.Request.RequestContext.RouteData.Values["id"]);

intellisence可能会告诉你什么类型:

httpContext.Request.RequestContext.RouteData.Values["id"]

输入时就是

。您还可以在调试器的“监视”选项卡中找到

答案 2 :(得分:0)

首先致电ToString()

然后parse to int

int.Parse(Url.RequestContext.RouteData.Values["id"].ToString())