Sco*_*ski 3 c# asp.net redirect http-status-code-302 asp.net-mvc-3
我们有一段代码可以检测旧URL并执行重定向,如下所示:
Response.Clear();
Response.StatusCode = 301;
Response.Status = "301 Moved Permanently";
try
{
    Response.AddHeader("Location", MyLink.GetFullPath());
} catch
{
    Response.StatusCode = 302;
    Response.Status = "302 Moved Temporarily";
    Response.AddHeader("Location", "/");
}
Response.End();
本质上发生的是尝试301永久重定向,如果不成功则将"302 Moved Temporarily"抛出到默认主页.
问题:我遇到的问题如下.如果输入了URL(例如"/ product/ABC123").301重定向失败URL和302重定向在catch被执行,但是原来的URL("/产物/ ABC123")仍然在背景中执行.当我在调试器中运行网站时,302重定向工作正常并且默认主页出现,然后半秒后执行补充页面并由于原始URL为no而出现服务器500错误更长的可接受
我的问题如下:如何完全停止原始请求,让302重定向完成它需要做的事情.我试过"HttpContext.ApplicationInstance.CompleteRequest();" 在"Response.End()"下面,但它没有停止原始请求.
编辑:重定向代码正在从Controller类的Index方法执行.
| 归档时间: | 
 | 
| 查看次数: | 1659 次 | 
| 最近记录: |