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に相当するものはありません。

消費者が言ったように、それが文字列の場合、あなたは試してみます、

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

インテリジェンスはあなたにどんなタイプを教えてくれるかもしれません:

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

あなたがそれをタイプするときです。デバッガーの「監視」タブでも確認できます

于 2012-06-28T19:47:00.630 に答える
0

最初の呼び出しToString()

それparseからto int

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