有谁知道如何纠正这个错误?
指定的演员表无效。
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidCastException:指定的强制转换无效。
这是它中断的代码行 -
var id = (int)httpContext.Request.RequestContext.RouteData.Values["id"];
有谁知道如何纠正这个错误?
指定的演员表无效。
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidCastException:指定的强制转换无效。
这是它中断的代码行 -
var id = (int)httpContext.Request.RequestContext.RouteData.Values["id"];
httpContext.Request.RequestContext.RouteData.Values["id"]
可能是一个字符串,因此您需要解析它:
var idStr=(string)(httpContext.Request.RequestContext.RouteData.Values["id"]);
int id;
if(int.TryParse(idStr, out id))
{
//w00t
}
您的价值,httpContext.Request.RequestContext.RouteData.Values["id"]
可能没有 int 等价物。
如果它是一个字符串,正如spender所说,你会尝试,
var id = int.Parse("httpContext.Request.RequestContext.RouteData.Values["id"]);
智能可能会告诉你什么类型:
httpContext.Request.RequestContext.RouteData.Values["id"]
在您键入时。您还可以在调试器的“监视”选项卡中找到
第一次通话ToString()
然后parse
它to int
int.Parse(Url.RequestContext.RouteData.Values["id"].ToString())