首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RouteData.Values保持空

RouteData.Values保持空
EN

Stack Overflow用户
提问于 2014-07-08 13:20:49
回答 2查看 3.6K关注 0票数 4

我的路线代码如下:

代码语言:javascript
复制
 RouteTable.Routes.MapPageRoute("IDP", "Person/{IDP}", "~/Person.aspx")

现在我想在表单上得到数据,通常它的工作方式如下:

代码语言:javascript
复制
int id = Convert.ToInt32(Page.RouteData.Values["IDP"]);

但是每次我试图从路由获取数据时,例如:http://PC-81/SkillDatenbank/Person/1,我从值中得不到数据(它是空的!)

我在Web上使用ASP.Net 4.5。编辑:我做了一个新的项目,并进行了测试,但它也没有工作,我做错了什么?在最后一个项目中,它确实是这样工作的:(你能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-08 14:03:00

您的问题列表可能位于路由表中。我创建了一个WebForms项目来测试这一点。

打开Global.asax (或任何存储RouteConfig的地方;默认值为App_Start/RouteConfig.cs)并检查RegisterRoutes方法。如果它尚未出现,则向其添加以下行。

代码语言:javascript
复制
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组数据,如下所示:

票数 3
EN

Stack Overflow用户

发布于 2016-05-07 09:47:50

下面的代码为我工作,我已经移动了更多的路线到顶部的功能。

而且,在我的例子中,RedirectMode是关闭的,因为我在代码中使用Jquery,为了使Webmethod工作,我关闭了RedirectMode。

代码语言:javascript
复制
void RegisterRoutes(RouteCollection routes)
{
     /* ... additional routes */
    routes.MapPageRoute("","Person/{IDP}", "~/Person.aspx");

    var settings = new FriendlyUrlSettings();
    settings.AutoRedirectMode = RedirectMode.Permanent;
    routes.EnableFriendlyUrls(settings);

}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24632979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档