3

有谁知道如何纠正这个错误?

指定的演员表无效。

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

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

这是它中断的代码行 -

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

3 回答 3

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
}
于 2012-06-28T19:40:58.077 回答
1

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

如果它是一个字符串,正如spender所说,你会尝试,

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

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

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

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

于 2012-06-28T19:47:00.630 回答
0

第一次通话ToString()

然后parseto int

int.Parse(Url.RequestContext.RouteData.Values["id"].ToString())
于 2016-08-22T12:04:45.820 回答