gpt4 book ai didi

c# - 在 Webforms 中使用 URL 路由生成 URL

转载 作者:太空狗 更新时间:2023-10-29 21:16:03 25 4
gpt4 key购买 nike

我知道在 MVC 框架中,您有 Html 类来创建 URL:

Html.ActionLink("About us", "about", "home");

但是如果您想在 Webforms 中生成 Urls 怎么办?

我还没有找到关于使用 Webforms 生成 URL 的详细信息的真正好的资源。

例如,如果我像这样生成路由:

Route r = new Route("{country}/{lang}/articles/{id}/{title}",
new ArticleRouteHandler("~/Forms/Article.aspx"));
Route r2 = new Route("{country}/{lang}/articles/",
new ArticleRouteHandler("~/Forms/ArticlesList.aspx"));

Routes.Add(r);
Routes.Add(r2);

我将如何使用路由表数据生成 URL。

如何根据我的路由生成 URL?

例如。/ca/en/articles/123/没有

的文章标题

最佳答案

感谢您的回答。除此之外,这是我所做的:

在 Global.asax 中

RouteValueDictionary rvdSiteDefaults 
= new RouteValueDictionary { { "country", "ca" }, { "lang", "en" } };

Route oneArticle
= new Route("{country}/{lang}/articles/a{id}/{title}",
rvdSiteDefaults,
rvdConstrainID,
new ArticleRouteHandler("~/Articles/Details.aspx"));

Routes.Add( "Article", oneArticle);

从 Article 对象创建 Url

public static string CreateUrl(Article a) {
// Note, Article comes from Database, has properties of ArticleID, Title, etc.
RouteValueDictionary parameters;

string routeName = "Article"; // Set in Global.asax

parameters
= new RouteValueDictionary {
{ "id", a.ArticleID },
{ "title", a.Title.CleanUrl() }
};

CleanUrl() returns a URL Friendly name .

    VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(null, routeName, parameters);

string url = vpd.VirtualPath;
return url; // eg. /ca/en/1/The-Article-Title
}

多多!

关于c# - 在 Webforms 中使用 URL 路由生成 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/279779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com