Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 响应。在Try/Catch块内重定向_C#_Asp.net - Fatal编程技术网

C# 响应。在Try/Catch块内重定向

C# 响应。在Try/Catch块内重定向,c#,asp.net,C#,Asp.net,在Asp.NET Web应用程序中尝试将字符串转换为枚举时 代码- enum MyEnum { field1, field2, field3 } string strField1 = "field1"; MyEnum parsedEnum = (MyEnum)Enum.Parse(typeof(MyEnum), strField1); 我遇到以下错误- 无法计算表达式,因为代码已优化或 本机框架位于调用堆栈的顶部 我错过了什么 编辑:更新代码: 我一直在使用这个枚举通

在Asp.NET Web应用程序中尝试将字符串转换为枚举时

代码-

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

受保护的无效BTN直接单击(对象发送者,事件参数e)
{            
var btn=发送方作为按钮;
var cmdName=btn.CommandName;//字段1
MyEnum parsedEnum=(MyEnum)Enum.Parse(typeof(MyEnum),cmdName);
尝试
{
交换机(parsedEnum)
{
案例MyEnum.field1:
重定向(“WebForm1.aspx”);
打破
案例MyEnum.field2:
重定向(“WebForm2.aspx”);
打破
案例MyEnum.field3:
重定向(“WebForm3.aspx”);
打破
违约:
打破
}
}
捕获(例外情况除外)
{
var err=例如消息;
}
}

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

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

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

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


上述异常已在catch块内导致,
当前页面线程被中止。

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

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


上面的异常是由catch块内的
当前页面线程被中止引起的。

取出(MyEnum)-您已经告诉它要解析的类型,因为什么时候会遇到该错误?我怀疑您没有从运行的代码中得到错误;这是您在尝试检查某些内容时通常在调试器中看到的错误。代码是正确的。我执行了successfully@Darren,这不是真的,此方法返回一个“object”,因此在解析后应强制转换为实际的枚举类型。问题中的代码是正确的。如果你想的话,有一个Enum.TryParse是泛型的。@autrevo:到底发生了什么事?您的代码本身没有抛出此错误-您的代码正在工作。但似乎您正在尝试调试该值—可能是在手表或即时窗口中—此时您看到了错误。取出(MyEnum)—您已经告诉它要解析的类型,因为您何时会遇到该错误?我怀疑您没有从运行的代码中得到错误;这是您在尝试检查某些内容时通常在调试器中看到的错误。代码是正确的。我执行了successfully@Darren,这不是真的,此方法返回一个“object”,因此在解析后应强制转换为实际的枚举类型。问题中的代码是正确的。如果你想的话,有一个Enum.TryParse是泛型的。@autrevo:到底发生了什么事?您的代码本身没有抛出此错误-您的代码正在工作。但是,似乎您正在尝试调试该值-可能是在手表或即时窗口中-而这正是您看到错误的时候。是的,我一直在使用MyEnum、内置开关盒和Response.Redirect。因此,将您的
响应更改为
响应。重定向(url)
响应。重定向(url,false)
,您应该很好。是的,我一直在使用MyEnum、insided switch case和Response.Redirect。因此,将您的
Response.Redirect(url)
更改为
Response.Redirect(url,false)
,您应该会做得很好。