[英]Response.Redirect Inside Try/Catch Block
尝试在Asp.NET webApplication中将strstr convert strting into enum
时。
代码-
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;
}
}
所有对该错误消息的引用均指向Request.Redirect
添加第二个false
参数。 enum
代码是否重定向用户?
问题在于尝试重定向到其他页面,位于try catch
块内。
由于代码已优化或本机框架位于调用堆栈的顶部,因此无法评估表达式。
造成以上异常的原因是,在catch块内, current page thread was being aborted.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.