0

コード :

foreach (HtmlGenericControl div in panelCategorieGuida.Controls.OfType<HtmlGenericControl>())
{
    HiddenField hf = div.Controls.OfType<HtmlGenericControl>().LastOrDefault();
}

「HtmlGenericControl を HiddenField に暗黙的に変換することはできません」と表示されます。また、私が書いた場合、(HiddenField)div.Controls.OfType<HtmlGenericControl>().LastOrDefault()それは機能しません。

div の最後の要素 (HtmlGenericControl) は常に HiddenField 要素です。

なんで?どこが間違っていますか?

4

5 に答える 5

1

@PranayRanaは正しいと思います。明示的なキャストも失敗した場合は、必要な要素が非表示フィールドであるかどうかを確認する必要があると思います。また、コードにいくつかの問題があります。続行する前に、常に何らかの検証を行う必要があります。そうでない場合は、おそらくテスト段階で、コードは正常に実行されています。ただし、本番環境の後半でエラーが発生する可能性があります。

于 2012-05-08T07:30:16.690 に答える
0

隠しフィールドかどうかを最初に確認する必要があると思います

if( div.Controls.OfType<HtmlGenericControl>().LastOrDefault() is HiddenField)
{
  /// rest of the processing code 
}

取得している要素がhiddenfield要素ではない可能性があるため、これで問題が解決する可能性があります

于 2012-05-08T07:21:28.410 に答える