为什么我的路线没有定向到我的页面
本文关键字:我的 我的路 为什么 | 更新日期: 2023-09-27 18:35:09
我有一个 ASP.NET 的Web表单项目,具有以下路由。这通常工作正常,但我无法让最后一个工作:
static void RegisterRoutes(RouteCollection routes)
{
RouteTable.Routes.Ignore("{resource}.axd/{*pathInfo}");
routes.MapPageRoute("Sidevisning",
"{" + Utils.Constants.RouteVariables.Article + "}",
"~/ArticleLayout.aspx");
routes.MapPageRoute("Tags",
"tags/{" + Utils.Constants.RouteVariables.Tags + "}",
"~/TagsPage.aspx");
routes.MapPageRoute("Forumpost",
"forums/topic/{" + Utils.Constants.RouteVariables.Post + "}",
"~/ForumPost.aspx");
routes.MapPageRoute("Bruger",
"users/{" +
Utils.Constants.RouteVariables.UserProfileId + "}",
"~/UserProfile.aspx");
routes.MapPageRoute("Offer",
"offers/{" + Utils.Constants.RouteVariables.OfferForm + "}",
"~/Offer.aspx");
routes.MapPageRoute("Ret opgaver",
"assignments/{" + Utils.Constants.RouteVariables.Assignment + "}",
"~/ReviewAssignments.aspx");
routes.MapPageRoute("Tutoring with subject",
"tutoring/{" + Utils.Constants.RouteVariables.TutorSubject + "}",
"~/tutoring/tutors.aspx");
routes.MapPageRoute("Tutoring with subject and city",
"tutoring/{" + Utils.Constants.RouteVariables.TutorSubject + "}/{" + Utils.Constants.RouteVariables.TutorCity + "}",
"~/tutoring/tutors.aspx");
routes.MapPageRoute("Tutoring with subject, city and level",
"tutoring/{" + Utils.Constants.RouteVariables.TutorSubject + "}/{" + Utils.Constants.RouteVariables.TutorCity + "}/{" + Utils.Constants.RouteVariables.TutorLevel + "}",
"~/tutoring/tutors.aspx");
routes.MapPageRoute("Blog kategori",
"category/{BlogCategoryName}",
"~/BlogCategory.aspx");
// be careful to switch around , it might give some pretty fucked up errors
routes.MapPageRoute("Laes Blog",
"{Year}/{Month}/{BlogHeadline}",
"~/ReadBlogEntry.aspx");
routes.MapPageRoute("Subject details",
"subject/{" + Utils.Constants.RouteVariables.SubjectChosen + "}/{" + Utils.Constants.RouteVariables.SubjectAction + "}",
"~/SubjectDetails.aspx");
}
因此,当我输入 URL 时,例如:
http://localhost:5744/subject/danskundervisning/articleoverview
我想点击主题详细信息.aspx。
但是,相反,我点击了其他页面并重定向到我的首页。我也找不到我正在点击的页面,这有点烦人。
从这些稀疏的信息中,我的路线中是否有问题?当我输入我写的 URL 时,最后一个不应该工作吗?
我不认为它有任何兴趣,但这是我的路线Varaibles:
public class RouteVariables
{
public const string Article = "article";
public const string OfferForm = "offers";
public const string Forumcategory = "forumname";
public const string Post = "posturl";
public const string UserProfileId = "userid";
public const string UserProfileProfilename = "userprofilename";
public const string Tags = "tags";
public const string Assignment = "assignment";
public const string TutorSubject = "tutorsubject";
public const string TutorCity = "tutorcity";
public const string TutorLevel = "tutorlevel";
public const string SubjectAction = "subjectionaction";
public const string SubjectChosen = "subjectchosen";
}
路线的顺序很重要。您将始终被重定向到LaesBlog Route。所以你需要像这样把那个放在最后
routes.MapPageRoute("Subject details",
"subject/{" + Utils.Constants.RouteVariables.SubjectChosen + "}/{" + Utils.Constants.RouteVariables.SubjectAction + "}",
"~/SubjectDetails.aspx");
routes.MapPageRoute("Laes Blog",
"{Year}/{Month}/{BlogHeadline}",
"~/ReadBlogEntry.aspx");
希望对你有帮助
我也遇到了同样的问题。我更改了路由定义的顺序,它起作用了。这里的问题是路由"Laes Blog"具有所有动态参数,而路由"主题详细信息"具有一个静态(硬编码)参数和 2 个动态参数。但是两者都有 3 个参数,所以它会发生冲突。
总而言之,始终在最后编写没有任何静态参数的路由。
我最近在我的博客上发布了一篇关于同一问题的文章,请点击以下链接
http://karmic-development.blogspot.in/2013/10/url-routing-in-aspnet-web-forms-same.html
我还在之前的博客文章中发布了我在实施 URL 路由时遇到的其他问题。