2010-06-24 114 views
1

我想在我的路線路由帶有多個參數

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

       routes.MapRoute(
        "CustomRoute", 
        "{controller}.mvc/{action}/{id}/{recid}", 
        new { action = "Index", id = "", recid = UrlParameter.Optional } 
       );    

      routes.MapRoute(
       "Root", 
       "", 
       new { controller = "Account", action = "Index", id = "", recid = 

UrlParameter.Optional 
); 

與/控制器/操作/ ID在頁面正確呈現增加額外的參數,但是當我調用頁面/控制器/操作/ ID/recid我在下面的函數中沒有得到RouteData.Values中的正確值。 RouteData.Values最初具有正確的值。但此功能後,再次調用自身和RouteData.Values有三個值,而不是四與在id字段

protected override void Initialize(System.Web.Routing.RequestContext requestContext) 
     { 
      base.Initialize(requestContext); 
      var RouteValue = requestContext.RouteData.Values; 
      String p = RouteValue.ToString(); 
      this._DocumentID = String.IsNullOrEmpty(RouteValue["id"].ToString()) ? 2 : Convert.ToInt32(RouteValue["id"]); 
      FormsIdentity ident = User.Identity as FormsIdentity; 
      if (ident != null) 
      { 
       FormsAuthenticationTicket ticket = ident.Ticket; 
       UserData = ticket.UserData; 
       this._UserID = Convert.ToInt32(UserData.Split('|')[0]); 
       this._RoleID = Convert.ToInt32(UserData.Split('|')[1]); 
       this._EmployeeID = Convert.ToInt32(UserData.Split('|')[2]); 
      } 
     } 

回答

0

您呈現的頁面包含在它的ressource prompt.js有prompt.js。刪除此文件或更改路由以忽略以.js結尾的請求。

+0

但是,如果我使用{controller} .mvc/{action}/{id}呈現相同的頁面並使用recid作爲查詢字符串參數,那麼每件事情都可以正常工作 – Tassadaque 2010-06-24 12:24:39