1

在尝试convert strting into enum在 Asp.NET webApplication 中。

代码 -

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

对该错误消息的所有引用都指向将第二个false参数添加到Request.Redirect. 代码是否enum重定向用户?

于 2012-11-02T14:10:13.593 回答
0

问题在于尝试重定向到try catch块内的其他页面。

无法计算表达式,因为代码已优化或本机框架位于调用堆栈顶部。

上述异常已引起,在 catch 块内,current page thread was being aborted.

于 2012-11-02T18:35:58.260 回答