我的路线代码如下:
RouteTable.Routes.MapPageRoute("IDP", "Person/{IDP}", "~/Person.aspx")现在我想在表单上得到数据,通常它的工作方式如下:
int id = Convert.ToInt32(Page.RouteData.Values["IDP"]);但是每次我试图从路由获取数据时,例如:http://PC-81/SkillDatenbank/Person/1,我从值中得不到数据(它是空的!)
我在Web上使用ASP.Net 4.5。编辑:我做了一个新的项目,并进行了测试,但它也没有工作,我做错了什么?在最后一个项目中,它确实是这样工作的:(你能帮我吗?
发布于 2014-07-08 14:03:00
您的问题列表可能位于路由表中。我创建了一个WebForms项目来测试这一点。
打开Global.asax (或任何存储RouteConfig的地方;默认值为App_Start/RouteConfig.cs)并检查RegisterRoutes方法。如果它尚未出现,则向其添加以下行。
void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
/* ... additional routes */
routes.MapPageRoute("","Person/{IDP}", "~/Person.aspx");
}如果您在Application_Start文件夹中使用默认配置:RouteConfig.RegisterRoutes(RouteTable.Routes);,那么在您的App_Start文件夹中应该有如下一行
如果您在global.asax.cs中定义了您的路由,那么它就是RegisterRoutes(RouteTable.Routes);。
如果您现在通过http://PC-81/SkillDatenbank/Person/1访问页面,那么RouteData字典将包含1组数据,如下所示:

发布于 2016-05-07 09:47:50
下面的代码为我工作,我已经移动了更多的路线到顶部的功能。
而且,在我的例子中,RedirectMode是关闭的,因为我在代码中使用Jquery,为了使Webmethod工作,我关闭了RedirectMode。
void RegisterRoutes(RouteCollection routes)
{
/* ... additional routes */
routes.MapPageRoute("","Person/{IDP}", "~/Person.aspx");
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
}https://stackoverflow.com/questions/24632979
复制相似问题