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]);
}
}
但是,如果我使用{controller} .mvc/{action}/{id}呈现相同的页面并使用recid作为查询字符串参数,那么每件事情都可以正常工作 – Tassadaque 2010-06-24 12:24:39