2013-04-17 227 views
0

在我的第一個ASP.NET頁面(主頁)中,用戶回答了許多問題,這些問題決定了他們點擊「下一步」時要去哪個頁面。動態導航到頁面

E.g.如果下表來自用戶輸入:

PageID Parameter 
1  16 
2  1 
3  20 

然後它告訴系統有3個頁面可以導航到。

從主頁,當用戶點擊下一步,它進入與PAGEID = 1(一個特定aspx頁面)的頁面傳遞參數16

在該頁面的末尾,點擊下一步按鈕以頁面ID = 2傳遞參數1,然後再次單擊下一步按鈕,用戶轉到頁面ID = 3,參數爲20.

最後,單擊此最後一頁上的下一步,最後的結束頁面。

我不確定如何設計/編寫這樣的動態頁面導航。

任何想法?

回答

0

您可以通過繼承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,我用一本字典,你可以添加任何其他來源,按您的情況。