动态导航到页面
本文关键字:导航 动态 | 更新日期: 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.cs
的Application_Start
,你可以添加它像
RouteTable.Routes.Add("CustomRoutes", new ParameterizedRoute());
在ParameterizedRoute
中,我使用了字典,您可以根据您的情况添加任何其他源