[C#] Webforms에서 URL 라우팅을 사용하여 URL 생성


Answers

답변 주셔서 감사합니다. 여기에 내가 추가 한 내용이 추가되었습니다.

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);       

기사 개체에서 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 () 은 URL 친숙한 이름을 반환합니다 .

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

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

타다!

Question

MVC 프레임 워크에서 URL을 생성하는 Html 클래스가 있다는 것을 알고 있습니다.

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

그러나 Webforms에서 Url을 생성하려면 어떻게해야합니까?

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 / ​​ko / articles / 123 / Article-Title없이