1

convert strting into enumAsp.NETwebApplicationでしようとしている間。

コード-

enum MyEnum
{
    field1,
    field2,
    field3
}

string strField1 = "field1";
MyEnum parsedEnum = (MyEnum)Enum.Parse(typeof(MyEnum), strField1);

次のエラーが発生しました-

コードが最適化されているか、ネイティブフレームが呼び出しスタックの最上位にあるため、式を評価できません。

私は何が欠けていますか。

編集:更新されたコード:

ボタンのCommandArgumentを検証することにより、この列挙型を使用してユーザーを他のページにリダイレクトしています。ソリューションのデバッグ中にこのエラーが発生します。それ以外の場合、コードは正常に機能します。

<form id="form1" runat="server">
    <div>
        <asp:Button Text="Redirect" ID="btnRedirect" OnClick="btnRedirect_Click" CommandName="field1" runat="server" />
    </div>
    </form>



    protected void btnRedirect_Click(object sender, EventArgs e)
    {            
        var btn = sender as Button;
        var cmdName = btn.CommandName; //field1
        MyEnum parsedEnum = (MyEnum)Enum.Parse(typeof(MyEnum), cmdName);

        try
        {
            switch (parsedEnum)
            {
                case MyEnum.field1:
                    Response.Redirect("WebForm1.aspx");
                    break;
                case MyEnum.field2:
                    Response.Redirect("WebForm2.aspx");
                    break;
                case MyEnum.field3:
                    Response.Redirect("WebForm3.aspx");
                    break;
                default:
                    break;
            }
        }
        catch (Exception ex)
        {
            var err = ex.Message;                
        }
    }
4

2 に答える 2

1

そのエラー メッセージへのすべての参照は、2 番目のfalseパラメータをに追加することを示していますRequest.Redirect。コードはenumユーザーをリダイレクトしていますか?

于 2012-11-02T14:10:13.593 に答える
0

try catchブロック内の他のページにリダイレクトしようとすると、問題が発生します。

コードが最適化されているか、ネイティブフレームが呼び出しスタックの最上位にあるため、式を評価できません。

上記の例外が発生しました、キャッチブロック内で、current page thread was being aborted.

于 2012-11-02T18:35:58.260 に答える