Response.Redirect Inside Try / Catch Block

时间:2012-11-02 14:01:50

标签: c# asp.net

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

代码 -

enum MyEnum
{
    field1,
    field2,
    field3
}

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

我遇到以下错误 -

  

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

我错过了什么。

编辑:更新代码:

我一直在使用此枚举通过验证按钮的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;                
        }
    }

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

  

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

在catch块内部current page thread was being aborted.

引起了异常