在.NET Core 2.1中,可以使用中间件来实现重定向到控制器操作/视图的功能。下面是正确的方法:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// 其他配置代码...
app.UseMiddleware<RedirectMiddleware>();
// 其他配置代码...
}
public class RedirectMiddleware : IMiddleware
{
public async Task InvokeAsync(HttpContext context, RequestDelegate next)
{
// 检查请求路径是否需要重定向
if (context.Request.Path == "/old-url")
{
// 执行重定向操作
context.Response.Redirect("/new-url");
return;
}
// 请求继续传递给下一个中间件
await next(context);
}
}
在上面的示例中,如果请求的路径是"/old-url",则会将请求重定向到"/new-url"。如果不需要重定向,请求会继续传递给下一个中间件。
public class HomeController : Controller
{
public IActionResult Index()
{
// 重定向到另一个控制器的操作
return RedirectToAction("About", "Home");
}
public IActionResult About()
{
// 重定向到另一个视图
return Redirect("/Home/Contact");
}
// 其他控制器操作...
}
在上面的示例中,Index方法通过RedirectToAction方法重定向到Home控制器的About操作,About方法通过Redirect方法重定向到Home控制器的Contact视图。
这是从.NET Core 2.1中间件重定向到控制器操作/视图的正确方法。希望对你有帮助!如果你对其他云计算领域的问题有兴趣,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云