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

标签 c# url routing url-routing

我知道在 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/

相关文章:

c# - 使用 MongoDB C# 驱动程序反序列化多态类型

c# - MVC 删除后将数据库记录追加到表中

ruby-on-rails - 如何在 Ruby on Rails 中获取当前的绝对 URL?

ruby-on-rails - 如何在 Rails 4 中将一组资源路由别名或重写到另一个命名空间?

c# - 如何使用反射获取调用方法名称和类型?

c# - 在 Debug模式下单步执行时 GUI 不会重绘

url - opencart 1.5.6 404 在 SEO 友好的 URL 中找不到 url

javascript - 当用户下载文件时在另一台服务器上重命名文件

symfony - 如何修复 Symfony 3.4 @Route 和 @Method 弃用

ruby-on-rails - 关于路由的基本 Ruby on Rails 问题