ZetCode

ASP.NET 重定向

最后修改于 2025 年 4 月 3 日

在本文中,我们将探讨 ASP.NET 8 中的重定向功能。重定向对于控制 Web 应用程序中的导航流程至关重要。

ASP.NET 提供了多种执行重定向的方法,每种方法都适用于不同的场景。理解这些方法对于正确的 Web 开发至关重要。

基本定义

Web 开发中的重定向指示浏览器导航到不同的 URL。ASP.NET 通过 Controller 类提供了多种重定向方法。

主要的重定向方法是 Redirect、RedirectPermanent、LocalRedirect 和 RedirectToAction。每种方法在应用程序路由中都有特定的用途。

Redirect 返回 302(临时)状态码,而 RedirectPermanent 返回 301(永久)。LocalRedirect 确保目标是本地 URL。

RedirectToAction 用于控制器操作之间的内部应用程序路由。这些方法有助于管理应用程序流程和 URL 结构。

ASP.NET 重定向示例

以下示例演示了 ASP.NET 控制器中的各种重定向场景。

Program.cs
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();

var app = builder.Build();

app.UseStaticFiles();
app.MapControllers();
app.Run();

这设置了一个基本的 ASP.NET MVC 应用程序。AddControllersWithViews 方法同时启用了 API 和基于视图的控制器。

Controllers/HomeController.cs
using Microsoft.AspNetCore.Mvc;

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    public IActionResult OldPage()
    {
        // Permanent redirect (301) to new location
        return RedirectPermanent("/Home/NewPage");
    }

    public IActionResult NewPage()
    {
        return View();
    }

    public IActionResult External()
    {
        // Redirect to external URL (302 temporary)
        return Redirect("https://example.com");
    }

    public IActionResult SecureRedirect()
    {
        // Only allow redirects to local URLs
        return LocalRedirect("/Home/Index");
    }

    public IActionResult ProcessForm()
    {
        // Redirect to another action after processing
        return RedirectToAction("Success");
    }

    public IActionResult Success()
    {
        return View();
    }

    public IActionResult ConditionalRedirect(bool isMember)
    {
        // Conditional redirect based on logic
        return isMember 
            ? RedirectToAction("MemberArea") 
            : RedirectToAction("Register");
    }
}

此控制器演示了多个重定向场景。OldPage 操作显示了到新位置的永久重定向。

External 操作演示了重定向到外部网站。SecureRedirect 确保目标是本地 URL 以确保安全。

ProcessForm 显示了表单提交后重定向的常见模式。ConditionalRedirect 演示了基于逻辑的路由。

每种重定向方法都有不同的用途。临时重定向 (302) 用于临时移动,而永久重定向 (301) 有助于永久更改的 SEO。

来源

Microsoft ASP.NET 重定向文档

在本文中,我们探讨了 ASP.NET 8 中的重定向功能。这些方法对于 Web 应用程序中的正确导航流程至关重要。

作者

我的名字是 Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在教授编程方面拥有超过十年的经验。

列出所有 ASP.NET 教程