动态导航到页面

本文关键字:导航 动态 | 更新日期: 2023-09-27 18:09:29

在我的第一个ASP。. NET页面(主页),用户回答一些问题,这些问题决定了当他们点击"下一步"时,他们会去哪个页面。

。如果用户输入的结果如下表:

PageID Parameter
1      16
2      1
3      20

然后它告诉系统有3个页面要浏览。

从主页,当用户单击Next时,它将传递参数16到PageID = 1的页面(一个特定的aspx页面)。

在该页的末尾,单击Next按钮将用户带到PageID = 2的页面,传递参数1,然后再次单击Next按钮,用户再次进入PageID = 3,传递参数20。

最后,点击最后一页的"下一步",就会跳转到最后一页。

我不确定如何设计/编码这样的动态页面导航。

任何想法?

动态导航到页面

您可以通过继承RouteBase类来定义自定义路由。

示例-

public class ParameterizedRoute : RouteBase
{
    const Dictionary<string,int> CustomParameters = new Dictionary<string,int> {{"1",16},{"2",1},{"3",20} };
    public override RouteData GetRouteData(HttpContextBase httpContext)
    {
        var routeData = new RouteData(this, new MvcRouteHandler());
        routeData.Values.Add("controller", "Datasheet");
        routeData.Values.Add("action", datasheetUrl.Action);
        var pageId = httpContext.Request.QueryString["PageId"].ToString();
        var param = CustomParameters[pageId];
        routeData.Values.Add("PageId", pageId);
        routeData.Values.Add("Parameter", param);
        return routeData;
    }
}

在这里,我假设您的PageId通过QueryString进入,并使用RouteData传递值。

在你的global.asax.csApplication_Start,你可以添加它像

RouteTable.Routes.Add("CustomRoutes", new ParameterizedRoute());

ParameterizedRoute中,我使用了字典,您可以根据您的情况添加任何其他源