2012-11-02 77 views
1

嘗試在Asp.NET webApplication中使用convert strting into enumResponse.Redirect內部Try/Catch塊

代碼 -

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;     
     } 
    } 
+0

取出(MyEnum) - 你已經告訴它作爲 – Darren

+3

當你遇到錯誤解析什麼類型?我懷疑你沒有從運行的代碼中得到這個錯誤;這是您在嘗試檢查某些內容時通常在調試器中看到的錯誤。 –

+2

代碼是正確的。我執行成功 – Frank59

回答

0

問題試圖重定向到其他頁面,try catch塊內部。

無法評估表達式,因爲代碼已經過優化或本機幀位於調用堆棧之上。

上面的異常已經引起的,裏面catch塊中,current page thread was being aborted.

1

到該錯誤消息的所有點的引用添加第二,false參數Request.Redirect。代碼重定向用戶是否enum

+0

是的,我一直在使用MyEnum,insided switch case和Response.Redirect。 – Abhijeet

+0

所以改變你的'迴應。重定向(url)'到'Response.Redirect(url,false)',你應該很好。 –