如何为重定向到另一个页面的ASP.NET页面创建属性?
[MyAttribute()]
public partial class Default : System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
}
}
[AttributeUsage(AttributeTargets.All)]
public class MyAttribute: Attribute
{
public MyAttribute()
{
if (// something)
{
// I need to redirect to some page here
}
}
}
答案 0 :(得分:0)
属性不能自行重定向 - 它只是装饰你定义它的类/成员的元数据。
该元数据可以与反射一起使用以执行重定向,但是您需要将该代码放在asp.net管道中的某个位置,以便可以检查页面并进行重定向。
答案 1 :(得分:0)
我同意其他所有人使用属性重定向是一种奇怪的体验。
如果你真的想这样做,你应该查看HttpApplication.BeginRequest事件,你可能会编写一些代码来检查每个加载的页面类的请求,看看是否有你想要的属性,然后执行你的在那里重定向。
或者,您可以编写一个继承自System.Web.UI.Page的抽象类(您站点中的所有页面也需要继承它)并在OnLoad中进行某种检查,如果该类是用属性装饰。